Redis_數據類型(常用)

健(key)

1. keys * [得到當前庫所有的健]

127.0.0.1:6379[1]> set name zhangsan
OK
127.0.0.1:6379[1]> set age 12
OK
127.0.0.1:6379[1]> set address cd
OK
127.0.0.1:6379[1]> keys *
1) "address"
2) "age"
3) "name"
127.0.0.1:6379[1]> 

2. exists key [判斷這個key是否存在]

127.0.0.1:6379[1]> exists name
(integer) 1
127.0.0.1:6379[1]> exists name1
(integer) 0

3. move key db [移動一個key到指定數據庫]

127.0.0.1:6379[1]> get name
"zhangsan"
127.0.0.1:6379[1]> move name 2
(integer) 1
127.0.0.1:6379[1]> get name
(nil)
127.0.0.1:6379[1]> select 2
OK
127.0.0.1:6379[2]> get name
"zhangsan"

4. expire key 秒鐘 [設置一個key的過期時間]

5. ttl key [查看指定的key還有多少秒過期,-1不過期,-2已過期]

127.0.0.1:6379[1]> expire name 15
(integer) 1
127.0.0.1:6379[1]> ttl name
(integer) 12
127.0.0.1:6379[1]> ttl name
(integer) 4
127.0.0.1:6379[1]> get name
(nil)
127.0.0.1:6379[1]> ttl name
(integer) -2
127.0.0.1:6379[1]> ttl age
(integer) -1

6. type key [查看指定的key是什麼類型]

127.0.0.1:6379[1]> type address
string

字符串(String)

1. get key [得到值] / set key value [設置鍵值] / del key [刪除]

append key value [在指定鍵的值中追加字符串] / strlen key [字符串長度]

127.0.0.1:6379[1]> set name zhangsan
OK
127.0.0.1:6379[1]> get name
"zhangsan"
127.0.0.1:6379[1]> append name 123
(integer) 11
127.0.0.1:6379[1]> get name
"zhangsan123"
127.0.0.1:6379[1]> strlen name
(integer) 11
127.0.0.1:6379[1]> del name
(integer) 1
127.0.0.1:6379[1]> get name
(nil)

2. incr key [每次遞增1] / decr key [每次減少1]

incrby key increment [增加指定數] / decrby key increment [減少指定數]

(一定是數字才能操作)

127.0.0.1:6379[1]> set like 0
OK
127.0.0.1:6379[1]> incr like
(integer) 1
127.0.0.1:6379[1]> incr like
(integer) 2
127.0.0.1:6379[1]> incr like
(integer) 3
127.0.0.1:6379[1]> decr like
(integer) 2
127.0.0.1:6379[1]> decr like
(integer) 1
127.0.0.1:6379[1]> decr like
(integer) 0
127.0.0.1:6379[1]> incrby like 5
(integer) 5
127.0.0.1:6379[1]> incrby like 5
(integer) 10
127.0.0.1:6379[1]> incrby like 5
(integer) 15
127.0.0.1:6379[1]> decrby like 5
(integer) 10
127.0.0.1:6379[1]> decrby like 5
(integer) 5
127.0.0.1:6379[1]> decrby like 5
(integer) 0
127.0.0.1:6379[1]> set like k1
OK
127.0.0.1:6379[1]> incr like
(error) ERR value is not an integer or out of range #不是數字操作會報錯

3. getrange key start end [獲取指定key指定範圍的值]

setrange key offset value [將value的值從指定位置開始覆蓋原有的值]

127.0.0.1:6379[1]> set name abcdefghijklmnopqrstuvwxyz
OK
127.0.0.1:6379[1]> getrange name 0 10
"abcdefghijk"
127.0.0.1:6379[1]> setrange name 0 123456
(integer) 26
127.0.0.1:6379[1]> get name
"123456ghijklmnopqrstuvwxyz"

4. setex key seconds value [(set with expire) 設置鍵值,並加上過期時間]

setnx key value [(set if not exist) 如果不存在,才設置]

127.0.0.1:6379[1]> setex name 5 zhangsan
OK
127.0.0.1:6379[1]> ttl name
(integer) 3
127.0.0.1:6379[1]> get name
(nil)
127.0.0.1:6379[1]> set name zhangsan
OK
127.0.0.1:6379[1]> setnx name lisi
(integer) 0
127.0.0.1:6379[1]> get name
"zhangsan"

5. mset key value [key value ...] [設置多個鍵值]

mget key [key ...] [得到多個值]

msetnx key value [key value ...] [設置多個鍵值,如果其中一個key重複,則都不存入]

127.0.0.1:6379[1]> mset name1 zhangsan name2 lisi name3 wangwu
OK
127.0.0.1:6379[1]> mget name1 name2 name3
1) "zhangsan"
2) "lisi"
3) "wangwu"
127.0.0.1:6379[1]> msetnx name2 zhaoliu name4 chenqi
(integer) 0

6. getset key value [先獲取值,再設置值]

127.0.0.1:6379[1]> set name zhangsan
OK
127.0.0.1:6379[1]> getset name lisi
"zhangsan"
127.0.0.1:6379[1]> get name
"lisi"

列表(list)

1. lpush key value [value ...] [從左側插入值]

rpush key value [value ...] [從右側側插入值]

lrange key start stop [按照範圍查詢list中結果]

127.0.0.1:6379> lpush firstList 1 2 3 4
(integer) 4
127.0.0.1:6379> lrange firstList 0 3
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> rpush firstList 1 2 3 4
(integer) 8
127.0.0.1:6379> lrange firstList 0 -1 #-1表示最後
1) "4"
2) "3"
3) "2"
4) "1"
5) "1"
6) "2"
7) "3"
8) "4"

2. lpop key [移除並且返回 key 對應的 list 的左邊第一個元素]

rpop key [移除並且返回 key 對應的 list 的右邊第一個元素]

127.0.0.1:6379> lrange firstList 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "1"
6) "2"
7) "3"
8) "4"
127.0.0.1:6379> lpop firstList
"4"
127.0.0.1:6379> rpop firstList
"4"

3. lindex key index [按照索引下標獲得元素,從前往後]

127.0.0.1:6379> lrange firstList 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "1"
6) "2"
7) "3"
8) "4"
127.0.0.1:6379> lindex firstList 0
"3"
127.0.0.1:6379> lindex firstList 3
"1"

4. llen key [獲得列表長度]

127.0.0.1:6379> llen firstList
(integer) 6

5. lrem key count value [從存於 key 的列表裏移除前 count 次出現的值爲 value 的元素]

127.0.0.1:6379> lrange firstList 0 -1
1) "3"
2) "2"
3) "1"
4) "1"
5) "2"
6) "3"
127.0.0.1:6379> lrem firstList 2 3
(integer) 2
127.0.0.1:6379> lrange firstList 0 -1
1) "2"
2) "1"
3) "1"
4) "2"

6. ltrim key start stop [修剪一個list,將指定範圍的值修剪出來,重新賦值給這個list,下標從0開始]

127.0.0.1:6379> lrange mylist 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
8) "8"
9) "9"
127.0.0.1:6379> ltrim mylist 0 5
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"

7. rpoplpush source destination [原子性地返回並移除存儲在 source 的列表的最後一個元素(列表尾部元素), 並把該元素放入存儲在 destination 的列表的第一個元素位置(列表頭部)。]

127.0.0.1:6379> rpush list1 1 2 3 4 5
(integer) 5
127.0.0.1:6379> rpush list2 5 6 7 8 9
(integer) 5
127.0.0.1:6379> rpoplpush list1 list2
"5"
127.0.0.1:6379> lrange list1 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> lrange list2 0 -1
1) "5"
2) "5"
3) "6"
4) "7"
5) "8"
6) "9"

8. lset key index value [設置 index 位置的list元素的值爲 value]

127.0.0.1:6379> lrange list2 0 -1
1) "5"
2) "5"
3) "6"
4) "7"
5) "8"
6) "9"
127.0.0.1:6379> lset list2 2 1
OK
127.0.0.1:6379> lrange list2 0 -1
1) "5"
2) "5"
3) "1"
4) "7"
5) "8"
6) "9"

9. linsert key BEFORE|AFTER pivot value [把 value 插入存於 key 的列表中在基準值 pivot 的前面或後面。]

127.0.0.1:6379> lrange list2 0 -1
1) "5"
2) "5"
3) "1"
4) "7"
5) "8"
6) "9"
127.0.0.1:6379> linsert list2 after 1 2
(integer) 7
127.0.0.1:6379> lrange list2 0 -1
1) "5"
2) "5"
3) "1"
4) "2"
5) "7"
6) "8"
7) "9"
127.0.0.1:6379> linsert list2 before 1 2
(integer) 8
127.0.0.1:6379> lrange list2 0 -1
1) "5"
2) "5"
3) "2"
4) "1"
5) "2"
6) "7"
7) "8"
8) "9"

集合(set)

1.sadd key member [member ...] [添加一個或多個指定的member元素到集合的 key中]

smembers key [返回key集合所有的元素]

sismember key member [返回成員 member 是否是存儲的集合 key的成員]

127.0.0.1:6379> sadd myset zhangsan lisi wangwu zhaoliu
(integer) 4
127.0.0.1:6379> smembers myset
1) "wangwu"
2) "zhangsan"
3) "zhaoliu"
4) "lisi"
127.0.0.1:6379> sismember myset zhangsan
(integer) 1
127.0.0.1:6379> sismember myset zhangsi
(integer) 0

2. scard key [返回key集合中元素的數量]

127.0.0.1:6379> smembers myset
1) "wangwu"
2) "zhangsan"
3) "zhaoliu"
4) "lisi"
127.0.0.1:6379> scard myset
(integer) 4

3. srem key member [member ...] [刪除key集合中一個或多個指定的member元素]

127.0.0.1:6379> smembers myset
1) "wangwu"
2) "zhangsan"
3) "zhaoliu"
4) "lisi"
127.0.0.1:6379> srem myset zhangsan zhaoliu
(integer) 2
127.0.0.1:6379> smembers myset
1) "wangwu"
2) "lisi"

4. srandmember key [count] [從存儲在key的集合中返回一個或多個隨機元素]

127.0.0.1:6379> smembers myset
1) "tangba"
2) "linjiu"
3) "wangwu"
4) "zhangsan"
5) "lisi"
6) "zhaoliu"
7) "chenqi"
127.0.0.1:6379> srandmember myset 2
1) "wangwu"
2) "linjiu"
127.0.0.1:6379> srandmember myset
"tangba"
127.0.0.1:6379> smembers myset
1) "tangba"
2) "linjiu"
3) "wangwu"
4) "zhangsan"
5) "lisi"
6) "zhaoliu"
7) "chenqi"

5. spop key [count] [從存儲在key的集合中移除並返回一個或多個隨機元素]

127.0.0.1:6379> smembers myset
1) "tangba"
2) "linjiu"
3) "wangwu"
4) "zhangsan"
5) "lisi"
6) "zhaoliu"
7) "chenqi"
127.0.0.1:6379> spop myset 2
1) "chenqi"
2) "lisi"
127.0.0.1:6379> spop myset
"wangwu"
127.0.0.1:6379> smembers myset
1) "tangba"
2) "linjiu"
3) "zhangsan"
4) "zhaoliu"

6. smove source destination member [將member從source集合移動到destination集合中]

127.0.0.1:6379> sadd number 1 2 3 4 5 6 7 8
(integer) 8
127.0.0.1:6379> sadd number02 9 10 11 12 13 14
(integer) 6
127.0.0.1:6379> smove number number02 5
(integer) 1
127.0.0.1:6379> smembers number
1) "1"
2) "2"
3) "3"
4) "4"
5) "6"
6) "7"
7) "8"
127.0.0.1:6379> smembers number02
1) "5"
2) "9"
3) "10"
4) "11"
5) "12"
6) "13"
7) "14"

7. sdiff key [key ...] [返回一個集合與給定集合的差集的元素]

127.0.0.1:6379> sadd s1 x y z
(integer) 3
127.0.0.1:6379> sadd s2 x
(integer) 1
127.0.0.1:6379> sadd s3 y
(integer) 1
127.0.0.1:6379> sdiff s1 s2 s3
1) "z"

8. sinter key [key ...] [返回指定所有的集合的成員的交集]

127.0.0.1:6379> sadd s1 x y z
(integer) 3
127.0.0.1:6379> sadd s2 w x
(integer) 2
127.0.0.1:6379> sadd s3 x z
(integer) 2
127.0.0.1:6379> sinter s1 s2 s3
1) "x"

9. sunion key [key ...] [返回給定的多個集合的並集中的所有成員]

127.0.0.1:6379> sadd s1 x y z
(integer) 3
127.0.0.1:6379> sadd s2 w x
(integer) 2
127.0.0.1:6379> sadd s3 x z
(integer) 2
127.0.0.1:6379> sunion s1 s2 s3
1) "y"
2) "w"
3) "z"
4) "x"

哈希(Hash)

1. hset key field value [設置 key 指定的哈希集中指定字段的值]

hget key field [返回 key 指定的哈希集中該字段所關聯的值]

hmset key field value [field value ...] [設置 key 指定的哈希集中指定字段的值。該命令將重寫所有在哈希集中存在的字段。如果 key 指定的哈希集不存在,會創建一個新的哈希集並與 key 關聯]

hmget key field [field ...] [返回 key 指定的哈希集中指定字段的值]

hgetall key [返回 key 指定的哈希集中所有的字段和值。返回值中,每個字段名的下一個是它的值,所以返回值的長度是哈希集大小的兩倍]

hdel key field [field ...] [從 key 指定的哈希集中移除指定的域]

127.0.0.1:6379> hset dog name huahua
(integer) 1
127.0.0.1:6379> hset dog age 2
(integer) 1
127.0.0.1:6379> hget dog name
"huahua"
127.0.0.1:6379> hget dog age
"2"
127.0.0.1:6379> hmset dog address cd gender female
OK
127.0.0.1:6379> hmget dog name age gender
1) "huahua"
2) "2"
3) "female"
127.0.0.1:6379> hgetall dog
1) "name"
2) "huahua"
3) "age"
4) "2"
5) "address"
6) "cd"
7) "gender"
8) "female"
127.0.0.1:6379> hdel dog address gender
(integer) 2
127.0.0.1:6379> hgetall dog
1) "name"
2) "huahua"
3) "age"
4) "2"

2. hlen key [返回 key 指定的哈希集包含的字段的數量。]

127.0.0.1:6379> hlen dog
(integer) 2

3. hexists key field [返回hash裏面field是否存在]

127.0.0.1:6379> hgetall dog
1) "name"
2) "huahua"
3) "age"
4) "2"
127.0.0.1:6379> hexists dog name
(integer) 1
127.0.0.1:6379> hexists dog address
(integer) 0

4. hkeys key [返回 key 指定的哈希集中所有字段的名字]

hvals key [返回 key 指定的哈希集中所有字段的值]

127.0.0.1:6379> hkeys dog
1) "name"
2) "age"
127.0.0.1:6379> hvals dog
1) "huahua"
2) "2"

5. hincrby key field increment [增加 key 指定的哈希集中指定字段的數值]

hincrbyfloat key field increment [爲指定 key 的 hash 的 field 字段值執行 float 類型的 increment 加]

127.0.0.1:6379> hget dog age
"2"
127.0.0.1:6379> hincrby dog age 1
(integer) 3
127.0.0.1:6379> hincrbyfloat dog age 0.5
"3.5"

6. hsetnx key field value [只在 key 指定的哈希集中不存在指定的字段時,設置字段的值]

127.0.0.1:6379> hgetall dog
1) "name"
2) "huahua"
3) "age"
4) "3.5"
127.0.0.1:6379> hsetnx dog name xiaohei
(integer) 0
127.0.0.1:6379> hsetnx dog gender female
(integer) 1

有序集合(zset [sorted set])

1. zadd key [NX|XX] [CH] [INCR] score member [score member ...] [將所有指定成員添加到鍵爲key有序集合(sorted set)裏面。 添加時可以指定多個分數/成員(score/member)對。]

127.0.0.1:6379[1]> zadd zset1 60 差 70 中 80 良 90 優 100 優+
(integer) 5

2. zrange key start stop [WITHSCORES] [返回存儲在有序集合key中的指定範圍的元素。 返回的元素可以認爲是按得分從最低到最高排列。 如果得分相同,將按字典排序。]

127.0.0.1:6379[1]> zrange zset1 0 -1
1) "cha"
2) "zhong"
3) "liang"
4) "you"
5) "you+"
127.0.0.1:6379[1]> zrange zset1 0 -1 withscores
 1) "cha"
 2) "60"
 3) "zhong"
 4) "70"
 5) "liang"
 6) "80"
 7) "you"
 8) "90"
 9) "you+"
10) "100"

3. zrangebyscore key min max [WITHSCORES] [LIMIT offset count] [根據分數範圍查詢]

127.0.0.1:6379[1]> zrangebyscore zset1 70 90 #分數在70到90
1) "zhong"
2) "liang"
3) "you"
127.0.0.1:6379[1]> zrangebyscore zset1 70 90 withscores #加上分數
1) "zhong"
2) "70"
3) "liang"
4) "80"
5) "you"
6) "90"
127.0.0.1:6379[1]> zrangebyscore zset1 70 90 withscores limit 0 2
1) "zhong"
2) "70"
3) "liang"
4) "80"
127.0.0.1:6379[1]> zrangebyscore zset1 70 (90 withscores #分數在70到小於90
1) "zhong"
2) "70"
3) "liang"
4) "80"
127.0.0.1:6379[1]> zrangebyscore zset1 (70 (90 withscores #分數在大於70小於80
1) "liang"
2) "80"

4. zrem key member [member ...] [刪除]

127.0.0.1:6379[1]> zrange zset1 0 -1 withscores
 1) "cha"
 2) "60"
 3) "zhong"
 4) "70"
 5) "liang"
 6) "80"
 7) "you"
 8) "90"
 9) "you+"
10) "100"
127.0.0.1:6379[1]> zrem zset1 cha
(integer) 1
127.0.0.1:6379[1]> zrange zset1 0 -1 withscores
1) "zhong"
2) "70"
3) "liang"
4) "80"
5) "you"
6) "90"
7) "you+"
8) "100"

5. ZCARD key [返回key的有序集元素個數]

127.0.0.1:6379[1]> zcard zset1
(integer) 4

6. zcount key min max [指定分數範圍的元素個數]

127.0.0.1:6379[1]> zcount zset1 70 100
(integer) 4

7. zrank key member [返回有序集key中成員member的排名]

127.0.0.1:6379[1]> zrank zset1 liang
(integer) 1

8. zscore key member [返回有序集key中,成員member的score值]

127.0.0.1:6379[1]> zscore zset1 liang
"80"

9. zrevrank key member [返回有序集key中成員member的排名]

127.0.0.1:6379[1]> zrange zset1 0 -1 withscores
1) "zhong"
2) "70"
3) "liang"
4) "80"
5) "you"
6) "90"
7) "you+"
8) "100"
127.0.0.1:6379[1]> zrevrank zset1 liang
(integer) 2

10. zrevrange key start stop [WITHSCORES [返回有序集key中,指定區間內的成員。其中成員的位置按score值遞減(從大到小)來排列]

127.0.0.1:6379[1]> zrevrange zset1 0 -1 withscores
1) "you+"
2) "100"
3) "you"
4) "90"
5) "liang"
6) "80"
7) "zhong"
8) "70"

11. zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count] [根據從大到小分數範圍查詢]

127.0.0.1:6379[1]> zrevrangebyscore zset1 90 60 withscores
1) "you"
2) "90"
3) "liang"
4) "80"
5) "zhong"
6) "70"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章