目录
1.查看所有键:keys * (不建议使用,redis单线程模式会造成堵塞)
1.查看所有键:keys * (不建议使用,redis单线程模式会造成堵塞)
将所有的键输出keys命令 会遍历所有键,所以它的时间复杂度是O(n),当Redis保存了大量键 时,线上环境禁止使用。
2.查看键总数:dbsize
将返回当前数据库中键的总数,不会遍历所有键,而是直接获取Redis内置的键总数变量,所以dbsize命令的时间复杂度是O(1)
3.检查键是否存在:exists key
键存在则返回1,不存在则返回0
4.删除键:del key [key ...]
返回结果为成功删除键的个数,支持一条命令删除多个,删除不存在的键就会返 回0
5.键设置过期时间:expire key seconds
超过过期时间后,会自动删除 键,例如为键hello设置了10秒过期时间,十秒之后自动删除:
> set hello world #设置键
> expire hello 10 #给键添加过期时间
6.查看键剩余过期时间:ttl key
返回键的剩余过期时间,三种返回值类型:
·大于等于0的整数:键剩余的过期时间
·-1:键没设置过期时间
·-2:键不存在
7.键的数据结构类型:type key
如果键不存在,则返回none,存在返回键的数据结构类型,五种数据结构的其中一种
8.键重命名:rename key newkey
127.0.0.1:6379> set python jedis
OK
127.0.0.1:6379> rename python java
OK
127.0.0.1:6379> get python
(nil)
127.0.0.1:6379> get java
"jedis"
在rename之前,键java已经存在,那么它的值也将被覆盖
为了防止被强行rename,Redis提供了renamenx命令,确保只有 newKey不存在时候才被覆盖,返回结果是0代表没有完成重命名;
注意:
- 重命名键期间会执行del命令删除旧的键,如果键对应的值比 较大,会存在阻塞Redis的可能性
- 如果rename的key和newkey如果是相同的,在 Redis3.2和之前版本返回结果略有不同;Redis3.2中会返回OK,Redis3.2之前的版本会提示错误
127.0.0.1:6379> rename key key
(error) ERR source and destination objects are the same
9.随机返回一个键:randomkey
10.键过期
·expire key seconds:键在seconds秒后过期
·expireat key timestamp:键在秒级时间戳timestamp后过期