redis常用操作和操作鍵值
string、list常用操作
string資料建立、覆蓋及設定過期時間
127.0.0.1:6379> get key1 檢視原來的key1的值 "b" 127.0.0.1:6379> set key1 123 覆蓋建立一個新的key1的string的值 OK 127.0.0.1:6379> get key1 檢視 "123" 127.0.0.1:6379> setnx key1 456 使用setnx來覆蓋key1元素,會返回0的結果,不會覆蓋key1原有的元素 (integer) 0 127.0.0.1:6379> get key1 顯示key1的元素,沒有變化,如果使用set則會覆蓋key1原來的元素 "123" 127.0.0.1:6379> setnx key2 123 可以使用setnx來直接建立一個新的str元素,返回結果是1 (integer) 1 127.0.0.1:6379> get key2 檢視 "123" 127.0.0.1:6379> setex key3 10 abcd 使用setex建立key3元素,過期時間為10秒,值為abcd OK 127.0.0.1:6379> get key3 10秒內還存在 "abcd" 127.0.0.1:6379> get key3 10秒後查詢資料則過期了
list資料型別常用操作
查詢後list中會將被查詢過的元素取出不再儲存,所以查詢後的元素就會"消失"。如從一個list取值:
127.0.0.1:6379> LRANGE list1 0 -1
1) "aaa"
2) "aaa"
127.0.0.1:6379> LPOP list1
"aaa"
127.0.0.1:6379> LRANGE list1 0 -1
1) "aaa"
127.0.0.1:6379> LPOP list1
"aaa"
127.0.0.1:6379> LRANGE list1 0 -1
(empty list or set)
在list的排序內插入一個元素。格式: linsert list表名 AFTER old new
127.0.0.1:6379> LPUSH list1 aaa (integer) 1 127.0.0.1:6379> LPUSH list1 bbb (integer) 2 127.0.0.1:6379> LPUSH list1 ccc (integer) 3 127.0.0.1:6379> LRANGE list1 0 -1 建立三個元素並檢視 1) "bbb" 2) "ccc" 3) "aaa" 127.0.0.1:6379> linsert list1 AFTER bbb eee 在bbb元素前面插入一條eee的新元素並檢視結果 (integer) 4 127.0.0.1:6379> LRANGE list1 0 -1 1) "bbb" 2) "eee" 3) "ccc" 4) "aaa"
在一個list中插入一個元素到第幾位,格式如:lset list表名 2 abcd //在第三位的地方插入元素abcd。例如:
127.0.0.1:6379> lset list1 2 abcd
OK
127.0.0.1:6379> LRANGE list1 0 -1
1) "bbb"
2) "eee"
3) "abcd"
4) "aaa"
檢視某個元素,格式:lindex list表名 2 //檢視第三個元素,檢視後元素還存在表中。如:
127.0.0.1:6379> lindex list1 2
"abcd"
127.0.0.1:6379> LRANGE list1 0 -1
1) "bbb"
2) "eee"
3) "abcd"
4) "aaa"
查看錶中有幾個元素,格式:llen list表名
127.0.0.1:6379> llen list1
(integer) 4
set集合常用操作
在一個集合中插入元素,並使用SMEMBERS檢視集合中的所有元素
127.0.0.1:6379> sadd set1 aaa
(integer) 1
127.0.0.1:6379> sadd set1 bbb
(integer) 1
127.0.0.1:6379> sadd set1 ccc
(integer) 1
127.0.0.1:6379> SMEMBERS set1 檢視集合set1中所有的元素
1) "ccc"
2) "bbb"
3) "aaa"
4) "2"
5) "3"
6) "4"
7) "a"
刪除一個指定元素或隨機取出一個元素並將這個元素從集合裡永久刪除
127.0.0.1:6379> srem set1 aaa 刪除集合裡指定的aaa元素
(integer) 1
127.0.0.1:6379> spop set1 刪除集合裡隨機的一個元素
"bbb"
127.0.0.1:6379> SMEMBERS set1 檢視集合裡剩下的元素
1) "ccc"
2) "2"
3) "3"
4) "4"
5) "a"
求多個集合之間的不同的元素,以第一個集合為標準,列出第二個集合沒有的元素。並將兩個集合之間的差集儲存到一個新的集合當中。如
127.0.0.1:6379> SMEMBERS set1 首先檢視兩個集合中的元素
1) "ccc"
2) "2"
3) "3"
4) "4"
5) "a"
127.0.0.1:6379> SMEMBERS set2
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> SDIFF set1 set2 對比兩個集合中的元素,以第一個集合為標準,列出第二集合沒有的元素
1) "4"
2) "ccc"
3) "a"
127.0.0.1:6379> SDIFFSTORE set3 set1 set2 將兩個集合中的差集結果得出並存儲到一個新的集合當中
(integer) 3
127.0.0.1:6379> SMEMBERS set3
1) "4"
2) "ccc"
3) "a"
兩個集合間求交集結果並將其儲存在一個新的集合當中
127.0.0.1:6379> SMEMBERS set1
1) "ccc"
2) "2"
3) "3"
4) "4"
5) "a"
127.0.0.1:6379> SMEMBERS set2 檢視兩個集合的所有元素
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> SINTER set1 set2 對比兩個集合之間相同的元素,兩個集合中都有2、3兩個元素
1) "2"
2) "3"
127.0.0.1:6379> SINTERSTORE set4 set1 set2 求交集並將結果儲存到一個新的集合set4當中
(integer) 2
127.0.0.1:6379> SDIFF set4
1) "2"
2) "3"
求出兩個集合的並集,將兩個集合中的元素合併在一起,重複的元素會去重顯示,並儲存到一個新的集合當中,如:
127.0.0.1:6379> SUNION set1 set2 將兩個集合合併顯示
1) "ccc"
2) "2"
3) "3"
4) "4"
5) "1"
6) "a"
127.0.0.1:6379> SUNIONSTORE set5 set1 set2 將兩個集合合併儲存到一個新的集合當中,並將重複的元素去重處理來儲存
(integer) 6
127.0.0.1:6379> SDIFF set5 檢視並集處理後建立的新儲存的集合當中的元素
1) "ccc"
2) "2"
3) "3"
4) "4"
5) "a"
6) "1"
判斷一個元素是否屬於(存在)一個集合中,比如這樣:
127.0.0.1:6379> SISMEMBER set1 ccc 檢視ccc元素是否屬於set1集合
(integer) 1
127.0.0.1:6379> SDIFF set1 檢視集合所有元素來驗證ccc是否存在於set1集合
1) "4"
2) "3"
3) "2"
4) "ccc"
5) "a"
隨機取出一個元素,但並不會刪除該元素。比如取出一個隨機元素,並檢視集合中這個隨機元素是否還存在
127.0.0.1:6379> SRANDMEMBER set1 隨機取出集合中的元素"3"
"3"
127.0.0.1:6379> SRANDMEMBER set1 隨機取出集合中的元素"a"
"a"
127.0.0.1:6379> SDIFF set1 檢視這些元素還存在於set1這個集合當中
1) "4"
2) "3"
3) "2"
4) "ccc"
5) "a"
set有序集合操作
建立一個有序集合並向集合中寫入元素
127.0.0.1:6379> zadd zseta 16 24 建立集合元素,zadd後分別是集合名稱、分值和元素三項引數
(integer) 1
127.0.0.1:6379> zadd zseta 18 224
(integer) 1
127.0.0.1:6379> zadd zseta 180 124
(integer) 1
127.0.0.1:6379> zadd zseta 300 624
(integer) 1
127.0.0.1:6379> zrange zseta 0 -1 zrange檢視zseta集合中所有的元素,0 -1表示列出從0到-1所有的元素範圍
1) "123"
2) "234"
3) "24"
4) "224"
5) "124"
6) "624"
檢視集合的元素並帶上元素分值
127.0.0.1:6379> zrange zseta 0 -1 withscores withscores是在檢視集合時同時列出元素的分值範圍/大小
1) "123" 元素
2) "1" 分值
3) "234" 元素
4) "2" 分值
5) "24" 元素
6) "6" 分值
7) "224" 元素
8) "18" 分值
9) "124" 元素
10) "180" 分值
11) "624" 元素
12) "300" 分值
在集合中刪除一個指定的元素,可以準確的刪除集合中的這個元素,需要在操作之前必須知道要刪除的元素值。操作如:
127.0.0.1:6379> zrem zseta 24
(integer) 1
127.0.0.1:6379> zrange zseta 0 -1
1) "123"
2) "234"
3) "224"
4) "124"
5) "624"
查詢元素的索引值,索引值從0開始,按照score正向排序。查詢元素的引索值如下面的操作:
127.0.0.1:6379> zrange zseta 0 -1 檢視所有元素,可以得知一共有五個元素
1) "123"
2) "234"
3) "224"
4) "124"
5) "624"
127.0.0.1:6379> zrank zseta 624 這裡按照從下往上的方式查詢元素引索值,引索值從0開始,所以引索值會比元素個數-1
(integer) 4
127.0.0.1:6379> zrank zseta 124
(integer) 3
127.0.0.1:6379> zrank zseta 224
(integer) 2
127.0.0.1:6379> zrank zseta 234
(integer) 1
127.0.0.1:6379> zrank zseta 123
(integer) 0
倒敘顯示集合中所有元素,統計集合中元素個數,統計集合中一個分值範圍內的元素個數並查詢返回一個分值範圍內的元素,操作如:
127.0.0.1:6379> zrevrange zseta 0 -1 倒敘顯示集合中元素
1) "624"
2) "124"
3) "224"
4) "234"
5) "123"
127.0.0.1:6379> zcard zseta 統計集合中元素個數
(integer) 5
127.0.0.1:6379> zcount zseta 1 10 查詢返回一個分值範圍內的元素個數
(integer) 2
127.0.0.1:6379> zrangebyscore zseta 1 10 查詢返回一個分值範圍內的元素
1) "123"
2) "234"
使用引索指定範圍來刪除多個範圍內的元素,刪除分值範圍內的元素
127.0.0.1:6379> zremrangebyrank zseta 0 2 刪除引索0到2範圍內的元素,刪除了0、1、2三個
(integer) 3
127.0.0.1:6379> zrangebyscore zseta 1 10 由於這裡10引索內只有0、1、2三個元素,所以在刪除後10引索內再沒有其他元素存在了
(empty list or set)
127.0.0.1:6379> zrange zseta 0 -1 使用分值刪除一個範圍內的元素前先檢視下現存在的元素
1) "124"
2) "624"
127.0.0.1:6379> zremrangebyscore zseta 100 130 刪除100到130分值範圍的元素,刪除了123和624元素
(integer) 2
127.0.0.1:6379> zrange zseta 0 -1 查詢;因為刪除了最後兩個有序集合元素,所以最後有序集合顯示為沒有元素
(empty list or set)
Redis常用鍵值和服務操作
keys* //取出所有key
127.0.0.1:6379> keys *
1) "key1"
2) "set5"
3) "set2"
4) "hash1"
5) "k3"
6) "hash2"
7) "seta"
8) "set"
9) "k2"
10) "key2"
11) "hash"
12) "list1"
13) "set3"
14) "k1"
15) "set4"
16) "set1"
--------------------------------------------------------------------------
keys k* //模糊匹配
127.0.0.1:6379> keys k*
1) "key1"
2) "k3"
3) "k2"
4) "key2"
5) "k1"
--------------------------------------------------------------------------
exists name //有name鍵返回1,否則返回0;
127.0.0.1:6379> exists key1 查詢一個存在的key
(integer) 1
--------------------------------------------------------------------------
del key1 //刪除一 個key //成功返回1 ,否則返回0;
127.0.0.1:6379> del key11 刪除一個不存在的key
(integer) 0
--------------------------------------------------------------------------
EXPIRE key1 100 //設定key1100s後過期
--------------------------------------------------------------------------
ttl key //檢視鍵還有多長時間過期,單位是s,當key不存在時,返回-2。當key存在但沒有設定剩餘生存時間時,返回-1。否則, 返回key的剩餘生存時間。
--------------------------------------------------------------------------
select 0 //代表選擇當前資料庫,預設進入0資料庫
--------------------------------------------------------------------------
move age 1 //把age移動到1資料庫,age屬於key名稱,成功返回1,失敗返回0
--------------------------------------------------------------------------
persist key1 //取消名字為key1鍵值的過期時間
--------------------------------------------------------------------------
randomkey //隨機返回一個key
--------------------------------------------------------------------------
rename oldname newname //重新命名key
--------------------------------------------------------------------------
type key1 //返回鍵的型別
127.0.0.1:6379> type set4 普通set集合型別
set
127.0.0.1:6379> type seta 有序set集合的型別
zset
--------------------------------------------------------------------------
redis服務操作
Redis常用操作(服務)
dbsize //返回當前資料庫中key的數目info //返回redis資料庫狀態資訊
--------------------------------------------------------------------------
flushdb //清空當前資料庫中所有的鍵
--------------------------------------------------------------------------
flushall //清空所有資料庫中的所有的key.
--------------------------------------------------------------------------
bgsave //儲存資料到rdb檔案中,在後臺執行
--------------------------------------------------------------------------
save //作用同上,但是在前臺執行
--------------------------------------------------------------------------
config get * //獲取所有配置引數
--------------------------------------------------------------------------
config get dir //獲取配置引數
--------------------------------------------------------------------------
config set dir //更改配置引數
--------------------------------------------------------------------------
資料恢復: 首先定義或者確定dir目錄和dbfilename,然後把備份的rdb檔案放到dir目錄下面,重啟redis服 務即可恢復資料
筆記記錄不周,請多多指教