通用命令
exists
判断key是否存在,返回1或0
del
删除key,key存在时返回1,key不存在时返回0
type
获取key类型
ttl
获取key剩余生存时间,-2表示key不存在,-1表示key永久生存
String类型
介绍
String类型是Redis最基本的数据类型,它存储的是字符串,字符串可以包含字母、数字、特殊字符等,字符串的长度没有限制,但是Redis的内存大小是有限的,如果存储的数据超过内存,Redis会自动删除数据。
常用命令
set/get
设置和获取数据key-value
shell
set key value
get key
mset/mget
设置和获取多个key-value对数据,
shell
mset key1 value1 key2 value2
mget key1 key2
incr/decr
对key对应的value进行加减1操作
shell
incr key
decr key
incrby/decrby
对key对应的value进行加减操作,可以设置步长
shell
incrby key 2
decrby key 2
setex
设置key-value,并设置过期时间
shell
setex key 10 value
setnx
设置key-value,如果key存在,则不设置
shell
setnx key value
getset
先获取key的值,再设置key-value,当key不存在时,会返回nil
shell
getset key value
注意
- value 不能超过512MB
- key 本身会占用内存,所以key的设计不要过长
- key最好使用
:
分割,比如user:id
List类型
介绍
List 是字符串列表,按照插入顺序排列,每个元素都是字符串,List 可以被用作栈、队列等。List的底层是一个双向链表,插入和删除都是O(1),查询是O(n) 。
常用命令
lpush
在列表左边插入元素
shell
lpush key value1 value2
rpop
从列表右边取出并删除元素
shell
rpop key
lrange
取出指定范围的元素,下标从0开始
shell
lrange key start end
lrange key 0 -1
llen
获取列表长度
shell
llen key
rpush
在列表右边插入元素
shell
rpush key value1 value2
lpop
从列表左边取出并删除元素
shell
lpop key
brpop
从列表右边取出并删除元素,如果列表为空,则阻塞一段时间,直到有元素加入列表
shell
brpop key timeout
lrem
删除指定数量的指定元素
shell
lrem key count value
注意
- 存储string 类型
- 列表最多存储2^32-1个元素,
Hash类型
介绍
Hash 是字符串字典,通过哈希表实现,可以存储键值对,每个键只能对应一个值
我觉得看起来和string一样的,只不过是把一些key-value封装到了一起,相当于一个对象,便于管理
常用命令
hset
设置key指定的哈希集中指定字段的值
shell
hset key field value
hget
获取key指定的哈希集中指定字段的值
shell
hget key field
hmset
同时设置key指定的哈希集中一个或多个字段的值
shell
hmset key field1 value1 field2 value2
hmget
同时获取key指定的哈希集中一个或多个哈希字段的值
shell
hmget key field1 field2
hgetall
获取key指定的哈希集中所有字段和值
shell
hgetall key
hdel
删除key指定的哈希集中指定字段
shell
hdel key field1 field2
hexists
查看key指定的哈希集中是否包含指定字段
shell
hexists key field
hlen
获取key指定的哈希集中的字段数量
shell
hlen key
hincrby
为key指定的哈希集中指定字段的值加上指定值
如果字段不存在,则创建字段并设置初始值,如果字段不是数字,则返回错误
shell
hincrby key field value
set类型
介绍
set 是一个集合,集合中元素是唯一的。集合可以用于去重,计算交集、差集,用户画像标签等。
集合也是通过哈希表实现的
常用命令
sadd
向集合中添加元素
shell
sadd key member1 member2
srem
从集合中删除元素,忽略不存在的元素
shell
srem key member1 member2
scard
获取集合中元素的数量
shell
scard key
sdiff
获取第一个集合与其他集合的差集
shell
sdiff key1 key2 ...
sinter
获取所有集合的交集
shell
sinter key1 key2 ...
sunion
获取所有集合的并集
shell
sunion key1 key2 ...
sismember
判断元素是否在集合中
shell
sismember key member
smembers
取集合中的所有元素
shell
smembers key
Sorted Set类型
介绍
Sorted Set 是有序集合,集合中元素是唯一的,并且按照分数排序,分数可以是整数或双精度浮点数。可以看作是在Set 基础上,通过维护score,添加了排序的功能。
可以用于实时排行榜,优先级队列等。
常用命令
zadd
向有序集合中添加元素,如果已经存在,则更新分数
shell
zadd key score member
zrem
从有序集合中删除元素
shell
zrem key member
zscore
获取有序集合中指定元素的分数
shell
zscore key member
zcard
获取有序集合中元素的数量
shell
zcard key
zcount
获取有序集合中指定分数范围的元素
shell
zcount key min max
zincrby
为有序集合中指定元素加上指定分数
shell
zincrby key score member
zrange
获取有序集合中指定范围的元素,按分数从小到大排序
shell
zrange key start end
zrevrange
获取有序集合中指定范围的元素,按分数从大到小排序
shell
zrevrange key start end
zrank
获取有序集合中指定元素的排名,按分数从小到大排序
shell
zrank key member
zrevrank
获取有序集合中指定元素的排名,按分数从大到小排序
shell
zrevrank key member
,按分数从小到大排序
shell
zrange key start end
zrevrange
获取有序集合中指定范围的元素,按分数从大到小排序
shell
zrevrange key start end
zrank
获取有序集合中指定元素的排名,按分数从小到大排序
shell
zrank key member
zrevrank
获取有序集合中指定元素的排名,按分数从大到小排序
shell
zrevrank key member