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