redis基礎一(基本操作)

2021-07-16 01:28:25 字數 3963 閱讀 8590

一、redis之我見

redis之所以現在用的這麼多,是因為redis全部都存在記憶體當中,速度比mysql快很多。然後和memcache相比,redis支援更多型別,能更好的儲存資料,而memcache只能用鍵值對的方式進行儲存。

二、redis的開啟方式

這裡介紹三種redis的開啟方式

2.1 在linux環境下

用redis-cli命令來開啟,在linux環境下輸入,

redis-cli

-p6379

-h127.0

.0.1

//-p 表示埠,預設6379埠, -h 表示ip,本例表示連線本地redis

有些redis可能還存在設定密碼的情況。

你可以在進去上面的頁面後,輸入命令 auth 對應的密碼 後就可以正常使用,也可以在進入redis的時候在上面的語句中改寫下,成為下面的命令,這樣登入也可以正常執行

redis-cli

-p6379

-h127.0

.0.1

-a 對應的密碼

2.2 在php中

可以去github上獲取redis的php擴充套件(然後呼叫裡面的方法就能正常使用了。

2.3 在yii2中

引入yii2-redis的擴充套件,然後在common模組中的main.php的配置檔案中,在components的陣列裡面加入redis的配置資訊:

'redis' => [

'class' => 'extensions\redis\connection',

'hostname' => 'localhost',

'port' => 6379,

],

然後在對應的**中,使用如下**就能初始化redis物件了,然後只要通過這個物件去呼叫對應的redis命令就能進行redis操作了。

三、redis基本命令

這裡我就介紹一些你在專案開發中用的比較多的的redis命令。

3.1 keys命令

可以redis中存在的key,然後根據可以自己給定匹配規則來查詢對應的key,下面是keys命令支援的匹配規則,這個基本涵蓋了大部分的例子了。

keys * 匹配資料庫中所有 key 。

keys h?llo 匹配 hello , hallo 和 hxllo 等。

keys h*llo 匹配 hllo 和 heeeeello 等。

keys h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo 。

keys hello 只匹配 hello,可以用來判斷對應的key是否存在。

keys t[w]* 可以匹配two等key。

keys t?? 可以匹配t開頭的所有內容

特殊符號用 \ 隔開

3.2 expire 為給定 key 設定生存時間。

使用規則如下,如果想查詢剩餘的時間的話,可以用ttl命令:

redis> expire cache_page 30

# 設定過期時間為 30 秒

(integer) 1

redis> ttl cache_page # 檢視剩餘生存時間

(integer) 23

這個命令需要注意的一點是,他只能更新乙個key的有效時間,但是如果是你是hash型別或者list型別的資料,不能對裡面的每一條都設定有效期,設定的只是這單一的key的有效期。

這樣可能帶來的問題就是,如果你想每條資料都有有效期,就無法實現了。而要實現這個功能的話,我的解決方法是,自己寫個定時指令碼,每分鐘執行一次,去獲取list型別裡的資料,然後刪除過期的資料。

3.3 del 刪除key的操作,可以刪除乙個或者多個。

#  刪除單個 key

redis> set name huangz

okredis> del name

(integer) 1

# 刪除乙個不存在的 key

redis> exists phone

(integer) 0

redis> del phone # 失敗,沒有 key 被刪除

(integer) 0

# 同時刪除多個 key

redis> set name "redis"

okredis> set type "key-value store"

okredis> set website "redis.com"

okredis> del name type website

(integer) 3

對於刪除命令,必須要提的一點是,對批量刪除的實現,因為del要刪除多個也只能自己複製多個可以才能實現刪除。我這裡提供的一種解決方案是,在linux環境下,用命令實現同型別的key的刪除,下面的例子就是刪除以notice開頭的所有的key,這個方法是壓箱底的東西了哈

redis-cli

-p6379 keys "notice*"

| xargs redis-cli

-p6379 del

四、redis的匯出資料在linux環境下,有時候你想檢視redis的資料,發現太多內容不好檢視,可以匯出到本地然後再檢視

redis-cli keys '*' > 文章路徑/redis_key.txt
五、redis的各種型別redis有很多種型別,string,hash,list,set,sortedset等.用的比較多的是前面四種。

5.1 string型別

主要用於簡單的儲存資訊,常用的命令:get,set,incr

redis> set test20

okredis> get test

"20"

redis> incr test

(integer) 21

5.2 hash型別

這個型別感覺主要用於儲存類似二維陣列的形式,如儲存所有使用者的token,key為token,然後裡面的域 field為對應的userid,然後裡面儲存著對應的使用者的token。

常用的命令:hset,hget,hgetall

redis> hset token userid_1 token1 //第乙個引數為key第二個為域,第三個為域裡對應的資料

okredis> hset token userid_2 token2 //第乙個引數為key第二個為域,第三個為域裡對應的資料

okredis> hget token userid_2 //hget是獲取單個域的資料

token2

redis> hgetall token

//hgetall是獲取整個key的資料

userid_1

token1

userid_2

token2

5.3 list型別

list的話就可以理解為佇列的形式,我用到的是訊息佇列等,或者將資料存入這個佇列,然後用定時指令碼去處理這個資料可以。

常用命令:llen,lpush,lpop,rpop

5.4 set型別

set型別的話主要表示集合的形式。

常用命令:sadd, smembers,simember,

redis> sadd test 1

(integer) 1

redis> smembers test

(integer) 1

redis> simember test 1

(integer) 1

Redis基本操作

set foo bar get foo then return bar set story long long long ago get story also we can get the encoding of the object object encoding foo return embst...

redis基本操作

這個 可以檢視所有的redis的命令 下面是常用的一些命令 1.登入本機 redis 其他電腦,請填寫對應的ip位址 redis cli.exe raw h 192.168.0.204 p 6379 2.新增set集合中的資料 sadd myset hello 3.查詢所有的key keys 模糊查...

Redis基本操作

1.資料庫基本操作 啟動redis redis server etc redis redis.conf 進入reids redis cli p port 退出redis quit 關閉redis redis cli shutdown 選擇資料庫 預設0,共16個 select num 清空資料庫 f...