Redis(十二)redis键(KEY)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Redis 键命令用于管理 redis 的键。

QQ图片20220425174222.jpg

Redis 键命令用于管理 redis 的键。


这个知识点一直被我给忽略了,前几天在测试redis的数据类型的时候,就在想,我测试过程中建了那么多的键来存储对应的数据,虽说最后数据都被我清掉了,但是键应该还是一直存在的吧。


这个玩意怎么删呢?我要想查看一下,我都定义了那些键,这玩意是不是得有个命令啊?


时间比较紧,也没多想。


今天看到了这个redis键的命令,哦,原来你在这。


大概看下几个常用的redis-key命令:


一:linux命令


1:del删除键,成功返回1,失败返回0


del hash-key               // 返回(integer) 1


2:exists查看某个键是否存在,存在返回1,不存在返回0


exists hash-key            // (integer) 0,我们上边删除了


3:type返回该键存储值得类型


设置键string 存储string类型的数据


set string 'camellia'              // 返回OK


查看键string 存储的数据类型


type string                          // 返回string


4:rename 修改指定键的名称


将键string的名称改为str


rename string str                 // 返回OK


查询键string是否存在


exists string                         // 返回(integer) 0,不存在,因为改名了


查询键str是否存在


exists str                             // 返回 (integer) 1,存在


5:keys查看redis中所有的键或者,满足对应条件的键


查找键str


keys str


输出:


1)     "str"


查找键st


keys st


输出:


(empty list or set)


查找以st开头的所有键


keys st*


输出:


1) "string"
2) "str"


查看redis中所有键


keys *


输出:


1) "time"
 2) "111.206.221.110time"
 3) "111.206.198.77time"
 4) "123.125.71.80time"
 5) "test"


6:expire 设置键的过期时间,以秒来计算


设置键str过期时间为300秒


expire str 300        // 返回(integer) 1


7:persist 去除当前键设置的过期时间


persist str             // 返回(integer) 1


二:PHP命令


1:del,成功返回1,失败返回0


res=res = res=redis->del('hash-key'); var_dump($res);


2:exists,存在返回1,失败返回0


res=res = res=redis->exists('test'); var_dump($res);


3:type,这个命令与linux中有区别,linux中执行直接返回类型,而这个命令在PHP中执行返回0-5的数字,分别代表:


0不存在
1字符串
2集合
3列表
4有序集合
5哈希表


$res = $redis->type('miaoshaceshi');
var_dump($res);       // 返回3


4:rename修改键的名称,成功返回true,失败返回false


$res = $redis->rename('test','te');
    var_dump($res);


5:keys 查找所有键,或查找满足对应条件的键


$res = $redis->keys('*');
    var_dump($res);


输出:


array(32) { [0]=> string(13) "54.36.148.248" [1]=> string(4) "time" [2]=> string(19) "111.206.221.110time" [3]=> string(18) "111.206.198.77time" [4]=> string(17) "123.125.71.80time" [5]=> string(18) "216.244.66.238time"}


6:expire 设置过期时间,成功返回true,失败返回false


$res = $redis->expire('te',300);
var_dump($res);


7:persist 去除对应健值的过期时间,成功返回true,失败返回false


$res = $redis->persist('te');
var_dump($res);


下面放一些常用的redis-key的命令,有兴趣可以自己去尝试一下:


序号


命令及描述


1


DEL key
  该命令用于在 key 存在时删除 key。


2


DUMP key 
  序列化给定 key ,并返回被序列化的值。


3


EXISTS key 
  检查给定 key 是否存在。


4


EXPIRE key seconds
  为给定 key 设置过期时间,以秒计。


5


EXPIREAT   key timestamp 
  EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。


6


PEXPIRE key milliseconds 
  设置 key 的过期时间以毫秒计。


7


PEXPIREAT   key milliseconds-timestamp 
  设置 key 过期时间的时间戳(unix timestamp) 以毫秒计


8


KEYS pattern 
  查找所有符合给定模式( pattern)的 key 。


9


MOVE key db 
  将当前数据库的 key 移动到给定的数据库 db 当中。


10


PERSIST key 
  移除 key 的过期时间,key 将持久保持。


11


PTTL key 
  以毫秒为单位返回 key 的剩余的过期时间。


12


TTL key 
  以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。


13


RANDOMKEY 
  从当前数据库中随机返回一个 key 。


14


RENAME key newkey 
  修改 key 的名称


15


RENAMENX   key newkey 
  仅当 newkey 不存在时,将 key 改名为 newkey 。


16


TYPE key 
  返回 key 所储存的值的类型。



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
4月前
|
存储 缓存 NoSQL
【Azure Redis 缓存】关于Azure Cache for Redis 服务在传输和存储键值对(Key/Value)的加密问题
【Azure Redis 缓存】关于Azure Cache for Redis 服务在传输和存储键值对(Key/Value)的加密问题
|
1月前
|
消息中间件 缓存 NoSQL
Redis 高并发竞争 key ,如何解决这个难点?
本文主要探讨 Redis 在高并发场景下的并发竞争 Key 问题,以及较为常用的两种解决方案(分布式锁+时间戳、利用消息队列)。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
Redis 高并发竞争 key ,如何解决这个难点?
|
1月前
|
存储 监控 NoSQL
Redis大Key问题如何排查?如何解决?
Redis大Key问题如何排查?如何解决?
77 0
Redis大Key问题如何排查?如何解决?
|
1月前
|
存储 NoSQL 算法
面试官:Redis 大 key 多 key,你要怎么拆分?
本文介绍了在Redis中处理大key和多key的几种策略,包括将大value拆分成多个key-value对、对包含大量元素的数据结构进行分桶处理、通过Hash结构减少key数量,以及如何合理拆分大Bitmap或布隆过滤器以提高效率和减少内存占用。这些方法有助于优化Redis性能,特别是在数据量庞大的场景下。
面试官:Redis 大 key 多 key,你要怎么拆分?
|
2月前
|
NoSQL Unix Redis
Redis 键(key)
10月更文挑战第15天
43 1
|
2月前
|
缓存 监控 负载均衡
如何解决Redis热点Key问题?技术干货分享
【10月更文挑战第2天】在Redis的使用过程中,热点Key问题是一个常见的性能瓶颈。热点Key指的是那些被频繁访问的Key,它们可能导致Redis服务器的负载不均衡,进而影响整体性能。本文将深入探讨热点Key问题的成因、影响以及多种解决方案,帮助读者在实际工作中有效应对这一挑战。
127 3
|
2月前
|
NoSQL Redis
redis 的 key 过期策略是怎么实现的(经典面试题)超级通俗易懂的解释!
本文解释了Redis实现key过期策略的方式,包括定期删除和惰性删除两种机制,并提到了Redis的内存淘汰策略作为补充,以确保过期的key能够被及时删除。
61 1
|
3月前
|
存储 缓存 NoSQL
Redis 大 Key 对持久化的影响及解决方案
Redis 大 Key 对持久化的影响及解决方案
59 1
|
3月前
|
存储 缓存 NoSQL
Redis中大Key与热Key的解决方案
在工作中,Redis作为一款高性能缓存数据库被广泛应用,但常遇到“大key”和“热key”问题。“大key”指单个键包含大量数据,导致内存消耗高、性能下降及持久化效率降低;“热key”则是频繁访问的键,会引起CPU占用率高、请求阻塞等问题。本文详细分析了这些问题的定义、影响、原因,并提供了相应的解决方案,如合理设置缓存时间和数据结构、拆分大key、采用热点数据分片等方法。
295 4
Redis中大Key与热Key的解决方案
|
3月前
|
缓存 NoSQL PHP
使用PHP-redis实现键空间通知监听key失效事件的技术与代码示例
通过上述方法,你可以有效地在PHP中使用Redis来监听键空间通知,特别是针对键失效事件。这可以帮助你更好地管理缓存策略,及时响应键的变化。
104 3