- 查找到redis-cli命令所在的位置,一般在/usr/local/bin/
- 执行命令redis-cli(auth [password])
redis-cli -h <hostname> -p <port> -a <password>
<hostname>: Redis服务器的地址,如果是本地服务器,可以使用localhost。
<port>: Redis服务器的端口,默认为6379。
<password>: Redis服务器的密码,如果没有设置密码,可以省略。
- 使用 KEYS 命令
如果你只是进行简单的测试或者开发环境下的操作,可以使用KEYS命令。这个命令接受一个模式作为参数,并返回所有匹配该模式的key列表。
KEYS pattern
例如,如果你想查找所有以user:开头的key:
KEYS user:*
- 使用 SCAN 命令
对于生产环境,推荐使用SCAN命令来代替KEYS。SCAN命令提供了增量迭代的方式来遍历数据库中的key,这样可以避免一次性加载所有匹配的key到内存中,从而减少对系统的影响。
基本用法如下:
SCAN cursor [MATCH pattern] [COUNT count]
其中cursor开始时设置为0,每次调用后返回一个新的cursor值,当这个值再次变为0时,表示扫描完成。MATCH参数用于指定模式,COUNT参数用来提示服务器每次迭代返回多少个元素。
例如,使用SCAN查找所有以user:开头的key:
SCAN 0 MATCH user:* COUNT 10
这会返回一个包含两个元素的数组,第一个元素是新的游标位置,第二个元素是一个包含匹配key的列表。
通过上述两种方法之一,你可以根据实际需求选择合适的命令来查找指定的key。在生产环境中,务必使用SCAN以避免性能瓶颈。
- redis删除key
在Redis中删除指定的key可以通过DEL命令来实现。DEL命令允许你删除一个或多个key。如果key不存在,则该命令不会返回错误,而是返回表示被删除key数量的结果。
单个key的删除
如果你想要删除单个key,可以直接使用DEL命令加上你要删除的key名称:
DEL key_name
例如,删除名为mykey的key:
DEL mykey
多个key的删除
如果你想同时删除多个key,可以在DEL命令后面列出所有要删除的key名称:
DEL key1 key2 key3 ...
例如,删除名为key1、key2和key3的key:
DEL key1 key2 key3
返回值
DEL命令返回被删除的key的数量。如果只有一个key,返回1或0;如果有多个key,返回值将是被成功删除的key的数量。
注意事项
删除key是一个不可逆的操作,一旦执行了删除命令,数据将永久丢失。因此,在删除前请确保这不是你需要的数据。
如果你在删除大量的key时,应当考虑这样做可能对Redis实例性能的影响,特别是在高负载的情况下。
批量删除key
如果你需要根据某种模式批量删除key,比如删除所有符合某个模式的key,可以结合使用SCAN命令来查找key,然后再使用DEL命令来删除它们。不过,这种方式需要编写脚本来自动化处理。
例如,使用Redis客户端工具或编程语言的Redis客户端库,可以编写一个脚本,先用SCAN命令获取所有符合模式的key,然后使用DEL命令逐个删除这些key。
在实际应用中,批量删除大量key时,建议谨慎操作,并考虑其对系统性能的影响。如果需要清理整个数据库,可以使用FLUSHDB来清空当前数据库,或者使用FLUSHALL来清空所有数据库。但是这两个命令应当非常小心地使用,因为它们会立即删除所有的数据。
- 选择redis库
在 Redis 中,你可以通过 SELECT 命令来切换不同的数据库。Redis 默认配置中包含了 16 个数据库(编号从 0 到 15),这可以帮助你在同一个 Redis 实例中隔离数据,避免键名冲突。
使用 Redis CLI 切换数据库
如果你正在使用 Redis 的命令行界面 (CLI),可以通过下面的命令来切换数据库:
SELECT <db-index>
这里 <db-index> 是你要切换到的数据库的索引号。例如,如果你想切换到索引为 3 的数据库,你应该输入:
SELECT 3
成功切换后,Redis 会确认切换操作,并准备好接受针对新数据库的操作命令。
- 查询redis中key对应的value值,通过get [key]方式获取
- get redis_pharmacy_contrary_map
- 这将会返回与键 redis_pharmacy_contrary_map 相关联的值。如果键不存在,则会返回 (nil)。
- 这将会返回与键 redis_pharmacy_contrary_map 相关联的值。如果键不存在,则会返回 (nil)。
- get redis_pharmacy_contrary_map