Redis Data Types
Redis keys
任何二进制序列
Redis Strings
设置/覆盖
>set mykey somevalue
>"OK"
只设置不覆盖
>set mykey somevalue nx
>(nil)
只覆盖不设置
>set mykey somevalue xx
>"OK"
获取
>get mykey
>"somevalue"
计数
>set counter 100
>"OK"
原子增加
>incr counter
>101
原子增加n
>incrby counter 5
>106
原子减少
>decr counter
>105
原子减少n
>decrby counter 5
>100
多重设置
>mset a 10 b 20 c 30
>"OK"
多重获取
>mget a b c
>"10","20","30"(array)
类型获取
>type mykey
>"string"
判断存在
>exist mykey
>1
删除存在
>del mykey
>1
判断不存在
>exist mykey
>0
删除不存在
>del mykey
>0
定时销毁
>expire mykey 5
>1
定时销毁设置
>set mykey 100 ex 10
>"OK"
查询定时
>ttl mykey
>8
Redis Lists
设置/头部追加
>lpush mylist A
>1
设置/尾部追加
>rpush mylist B
>2
多重设置/多重尾部追加
>rpush mylist 1 2 3 4 5
>7
获取
>lrange mylist 0 -1(first last)
>"A","B"(array)
头部获取删除
>lpop mylist
>"A"/(nil)
尾部获取删除
>rpop mylist
>"5"/(nil)
截取
>ltrim mylist 2 2(first last)
>"OK"
头部阻塞获取删除
>blpop mylist
>"B"
尾部阻塞获取删除
>brpop mylist
>"4"
删除列表
>del mylist
>1
获取列表长度
>llen mylist
>0
Redis Hashes
多重设置
>hmset myhash A a B b
>"OK"
获取
>hget myhash A
>"a"
多重获取
>hmget myhash A C
>"a",(nil)(array)
全部获取
>hgetall myhash
>"A","a","B","b"(array)
Redis Sets
设置
>sadd myset 1 2 3
>3
全部获取
>smembers myset
>"3","1","2"(array)
判断
>sismember myset 3
>0/1
随机获取删除
>spop myset
>"2"
获取集合长度
>scard myset
>2
Redis Sorted Sets
设置
>zadd mysset 1 "A"
>1
>zadd mysset 2 "B"
>1
获取
>zrange mysset 0 -1(first last)
>"A","B"(array)
反向获取
>zrevrage mysset 0 -1(first last)
>"B","A"(array)
全部获取
>zrange mysset 0 -1 withscores
>"A","1","B","2"
Redis Bitmaps
设置
>setbit mykey 10 1
>1
获取
>getbit mykey 10
>1/0
计算
>bitcount mykey
>2
参考文献:https://redis.io/topics/data-types-intro