redis 查看所有的key方式

可以使用KEYS 命令

KEYS pattern

例如

列出所有的key

redis> keys *

列出匹配的key

redis>keys apple*
1) apple1
2) apple2

补充:redis的常用命令——KEY

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

但是我们最常用的还是key和五大数据类型的相关命令, key,字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets),这节我们先看关于 KEY的相关命令

key:

1、KEYS pattern

查找所有匹配给定的模式的键,keys * 查看所有缓存的键

2、DEL key1 key2

删除指定的缓存(一个或多个)

3、DUMP key

导出key的值,如果 key 不存在,那么返回 nil。否则,返回序列化之后的值。

"\x00\x02v3\b\x00\xf1*K%b\xcd\x8e\xa0"

4、EXISTS key

查询一个key是否存在

5、EXPIRE key 20

设置一个key的过期秒数(秒)

6、TTL key

获取key的有效时间(秒),如果key不存在,返回 -2,建议与EXPIRE key一起来测试效果

7、EXPIRE key 20000

设置key的有效时间(毫秒)

8、PTTL key

获取key的有效毫秒数(毫秒)

9、RENAME key newkey

将一个key重命名,如果该newkey已经存在了,那就用将被改名的key的value覆盖至与已存在老的newkey的值,看下面我的测试

10、RENAMENX key newkey

重命名一个key,新的key必须是不存在的key

修改成功时,返回 1 。如果 newkey 已经存在,返回 0 。

11、RANDOMKEY

返回一个随机的key

12、TYPE key

获取key 的存储类型

13、MOVE key db

把key移动到另外一个数据库里

什么意思呢?我们 vim redis.conf,/databases可以看到

从注释我们可以知道,redis的DB一共有16个,从 0-15,默认是D0个,我们可以通过命令

SELECT dbid选择不同的DB,比如select 1;select 15等。看下面的测试

14、FLUSHDB与FLUSHALL

上面我们知道了redis里默认有16个DB, 那FLUSHDB就是清除当前DB里的所有数据(慎用)FLUSHALL就是清除所有的DB里的所有数据(不要用)

下面这个例子测试下FLUSHALL

小枫温馨提示:

1、每个命令都要敲一遍,不能眼高手低

2、我这里只是常用的命令,还需要各位看官去官网上自己扩展

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • 解决RedisTemplate的key默认序列化器的问题

    redis的客户端换成了spring-boot-starter-data-redis,碰到了一个奇怪的问题, 在同一个方法中 1.先hset,再hget,正常获得数据. 在不同的方法中 先hset,再hget获取不到数据,通过redis的monitor监控发现了命令的问题: 实际我的key为JK_HASH:csrk,hashkey为user,但是根据上图所示,实际执行的命令多了好多其他字符,这是什么原因呢? 在服务器端先确认发现实际有这个Hash,通过hset可以得到正确的数据,所以第一次执行h

  • redis通过lua脚本,获取满足key pattern的所有值方式

    我们知道,redis提供了keys命令去获取所有满足格式的key,如我们键入命令 keys "user*" 将得到所有以user开头的key 然后执行 mget命令可以获取多个key的值,如 但如果满足条件的key过多,我们要将所有key拿到,再用mget去拿到所有值则为相对比较麻烦,因此可以借助xargs redis-cli keys "user*"|xargs redis-cli mget获取到所有key的值 也可以执行lua脚本local keys = red

  • Redis大key多key拆分实现方法解析

    背景 业务场景中经常会有各种大key多key的情况, 比如: 1:单个简单的key存储的value很大 2:hash, set,zset,list 中存储过多的元素(以万为单位) 3:一个集群存储了上亿的key,Key 本身过多也带来了更多的空间占用 (如无意外,文章中所提及的hash,set等数据结构均指redis中的数据结构 ) 由于redis是单线程运行的,如果一次操作的value很大会对整个redis的响应时间造成负面影响,所以,业务上能拆则拆,下面举几个典型的分拆方案. 一.单个简单的

  • Redis遍历所有key的两个命令(KEYS 和 SCAN)

    当我们需要遍历Redis所有key或者指定模式的key时,首先想到的是KEYS命令: KEYS pattern 官网对于KEYS命令有一个提示:  KEYS 的速度非常快,例如,Redis在一个有1百万个key的数据库里面执行一次查询需要的时间是40毫秒 .但在一个大的数据库中使用它仍然可能造成性能问题,如果你需要从一个数据集中查找特定的  KEYS , 你最好还是用 Redis 的集合结构  SETS  来代替. KEYS命令使用很简单. redis> MSET one 1 two 2 thr

  • 详解Redis中key的命名规范和值的命名规范

    数据库中得热点数据key命名惯例 表名:主键名:主键值:字段名 例如 user:id:0001:name 例如 user:id:0002:name 例如 order:id:s2002:price 上面的key对应的值则可以是 存放的方式 key value 优点 单独的key:value形式 order:id:s2002:price 2000 方便简单的操作,例如incr自增或自减 json格式 user:id:0001 {id:0001,name:"张三"} 方便一次性存和取数据,但

  • redis keys与scan命令的区别说明

    redis keys和scan的区别 redis的keys命令,通常在用来删除相关key时使用,但这个命令有一个弊端,在redis拥有数百万及以上的keys时,执行速度会比较慢,更致命的是,这个命令会阻塞redis多路复用的io主线程,如果这个线程阻塞,在此期间,其他发向redis服务端的命令,都会被阻塞,从而引发一系列级联反应,导致瞬间相应卡顿,从而引发超时等问题,所以应该在生产环境禁止用使用keys和类似的命令smembers,这种时间复杂度为O(N),且会阻塞主线程的命令,是非常危险的.

  • redis 查看所有的key方式

    可以使用KEYS 命令 KEYS pattern 例如 列出所有的key redis> keys * 列出匹配的key redis>keys apple* 1) apple1 2) apple2 补充:redis的常用命令--KEY Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets)

  • python中redis查看剩余过期时间及用正则通配符批量删除key的方法

    具体代码如下所示: # -*- coding: utf-8 -*- import redis import datetime ''' # 1. redis设置过期时间的两种方式 expire函数设置过期时间为10秒.10秒后,ex1将会失效 expireat设置一个具体的时间,15年9月8日15点19分10秒,过了这个时间,ex2将失效 如果设置过期时间成功会返回True,反之返回False ''' pool = redis.ConnectionPool(host='192.168.3.128'

  • redis三种高可用方式部署的实现

    前言 一.主从复制 概念 和mysql的主从复制一样 都是将服务器的数据复制到另一个数据库中 发送的称为master 接受的叫slave 数据为单向传输 只可以主到从 每台Redis服务器都是主节点:且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点. 作用 数据冗余 实现了数据的热备份,是持久化之外的一种数据冗余方式 故障切换 当主节点宕机或者出现错误时 由从服务器来提供服务 实现故障切换 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供

  • Redis获取某个大key值的脚本实例

    1.前言 工作中,经常有些Redis实例使用不恰当,或者对业务预估不准确,或者key没有及时进行处理等等原因,导致某些KEY相当大. 那么大Key会带来哪些问题呢? 如果是集群模式下,无法做到负载均衡,导致请求倾斜到某个实例上,而这个实例的QPS会比较大,内存占用也较多:对于Redis单线程模型又容易出现CPU瓶颈,当内存出现瓶颈时,只能进行纵向库容,使用更牛逼的服务器. 涉及到大key的操作,尤其是使用hgetall.lrange 0 -1.get.hmget 等操作时,网卡可能会成为瓶颈,也

  • Redis分布式锁的实现方式(redis面试题)

    什么是分布式锁? 要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁.进程锁. 线程锁:主要用来给方法.代码块加锁.当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段.线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,比如synchronized是共享对象头,显示锁Lock是共享某个变量(state). 进程锁:为了控制同一操作系统中多个进程访问某个共享资源,因为进程具有独立性,各个进程无法访问其他进程的资源,因此无法通过synchronize

  • 在redisCluster中模糊获取key方式

    在一个集群中,显然不能通过keys方法通过pattern直接获取key的集合: 鉴于这种问题,产生了两种思路,如下: 方案1: 已知相同的tag的KV会在一个节点上,所以只要key带有相同的hashtag,则会在一个节点上,所以只要扫描该节点即可,这样就将集群转化为了单点. @RequestMapping(value = "/ceshi", method = RequestMethod.GET) @ResponseBody public void Rediskeys() { /** *

  • Go结合Redis用最简单的方式实现分布式锁

    目录 前言 单Redis实例场景 加解锁示例 小结 多Redis实例场景 加解锁示例 小结 总结 前言 在项目中我们经常有需要使用分布式锁的场景,而Redis是实现分布式锁最常见的一种方式,并且我们也都希望能够把代码写得简单一点,所以今天我们尽量用最简单的方式来实现. 下面的代码使用go-redis客户端和gofakeit,参考和引用了Redis官方文章 单Redis实例场景 如果熟悉Redis的命令,可能会马上想到使用Redis的set if not exists操作来实现,并且现在标准的实现

  • 查看修改mysql编码方式让它支持中文(gbk或者utf8)

    MySQL的默认编码是Latin1,不支持中文,要支持中文需要把数据库的默认编码修改为gbk或者utf8. 1.需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:>mysql -u root –p,之后两次输入root用户的密码),查看数据库的编码方式命令为: >show variables like 'character%'; +--------------------------+----------------------------+ | Variab

  • redis查看连接数及php模拟并发创建redis连接的方法

    max_redis.php <?php set_time_limit (0); for($i=1;$i<=1050;$i++){ exec("nohup php /var/www/html/big/link_redis.php > /dev/null &"); } link_redis.php <?php set_time_limit (0); $redis = new redis(); $redis->pconnect('localhost',

  • python redis 批量设置过期key过程解析

    这篇文章主要介绍了python redis 批量设置过期key过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在使用 Redis.Codis 时,我们经常需要做一些批量操作,通过连接数据库批量对 key 进行操作: 关于未过期: 1.常有大批量的key未设置过期,导致内存一直暴增 2.rd需求 扫描出这些key,rd自己处理过期(一般dba不介入数据的修改) 3.dba 批量设置过期时间,(一般测试可以直接批量设置,线上谨慎操作) 通过

随机推荐