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服 務即可恢復數據

筆記記錄不周,請多多指教

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章