Redis的全局命令
keys 命令
查看所有键(支持通配符)
keys *
keys n*
dbsize 命令
返回当前数据库中键的总数
dbsize命令在计算键总数时不会遍历所有键,而是直接获取 Redis内置的键总数变量,所以dbsize命令的时间复杂度是O(1)。
exists 命令
检查键是否存在,存在返回1,不存在返回0;
del 命令
删除键,无论值是什么数据结构类型,del命令都可以将其删除。返回删除键个数,删除不存在键返回0。同时del命令可以支持删除多个键。
expire 命令
Redis支持对键添加过期时间,当超过过期时间后,会自动删除键,时间单位秒。
ttl 命令
返回键的剩余过期时间,它有3种返回值:
- >=0 的整数:键剩余的过期时间。
- -1:键没设置过期时间。
- -2:键不存在。
expireat 命令
键在秒级时间截timestamp后过期;
pexpire 命令
键在milliseconds毫秒后过期。
pexpireat命令
键在毫秒级时间戳timestamp后过期。
type 命令
返回键的数据结构类型;
randomkey 命令
随机返回一个键;
rename 命令
键重命名
如果在rename之前,新键已经存在,那么它的值也将被覆盖。
为了防止被强行rename,Redis提供了renamenx命令,确保只有newKey不存在时候才被覆盖。
Redis常用数据结构
- 字符串(String)
- 哈希(Hash)
- 列表(List)
- 集合(Set)
- 有序集合(ZSet)
字符串(String)
字符串类型是Redis最基础的数据结构。值最大不能超过512MB;
虽然Redis是C写的,C里面有字符串<本质使用char数组来实现>,但是处于种种考虑,Redis还是自己实现了字符串类型
set 设置值
set key value
set命令的几个选项:
- ex seconds: 为键设置秒级过期时间。
- px milliseconds: 为键设置毫秒级过期时间。
- nx: 键必须不存在,才可以设置成功,用于添加(分布式锁常用)。
- xx: 与nx相反,键必须存在,才可以设置成功,用于更新。
如果一个字符串已经设置了过期时间,然后你调用了set 方法修改了它,它的过期时间会消失。
nx 和 xx 效果:
除了set选项,Redis 还提供了setex和 setnx两个命令:
setex key seconds value
setnx key value
setex和 set