首页 > 数据库 >Redis 遍历指定格式的所有key

Redis 遍历指定格式的所有key

时间:2023-01-31 12:55:15浏览次数:51  
标签:遍历 Redis db key var conn

        Redis 作为当前最流行的内存型 NoSQL 数据库,被许多公司所使用,我们在实际使用中一般都会为 key 带上指定的前缀或者其他定义的格式,那么我们怎样能取出符合条件的所有Key呢?

这里我们借助StackExchange.Redis,在 StackExchange.Redis 对于 keys 和 scan 命令统一封装为了 IServer.Keys()方法,它会自动根据Redis服务器版本来决定使用keys命令还是scan命令。

为了方便测试,我在 Redis 里面准备了四个以 test 为前缀的key,放在序号为1的db里面:

 

 

1.遍历所有前缀为 test 的key 代码如下:

static async Task Main(string[] args)
{
    //创建连接
    var conn = await ConnectionMultiplexer.ConnectAsync("192.168.10.110");
    //获取db
    var db = conn.GetDatabase(1);
    //遍历集群内服务器
    foreach (var endPoint in conn.GetEndPoints())
    {
        //获取指定服务器
        var server = conn.GetServer(endPoint);
        //在指定服务器上使用 keys 或者 scan 命令来遍历key
        foreach (var key in server.Keys(1,"test.*"))
        {
            //获取key对于的值
            var val = db.StringGet(key);
            Console.WriteLine($"key: {key}, value: {val}");
        }
    }
}

执行结果:

1535608290825

 

标签:遍历,Redis,db,key,var,conn
From: https://www.cnblogs.com/Seamless/p/17078616.html

相关文章

  • Python 错误:TypeError: range() takes no keyword arguments
    问题描述:for循环时使用range()出错:forpageinrange(start=1,stop=8+1,step=1):print(page)结果报错TypeError:range()takesnokeywordargument......
  • Redis快速入门
    Redis快速入门,分两个客户端:Jedis和SpringDataRedis使用Jdedis1、引入依赖<!--jedis--><dependency>    <groupId>redis.clients</groupId>    <artifactId>jed......
  • redis注意点记录
    1、stringRedisTemplate 它的key和Value的序列化方式默认就是String类型2、stringRedisTemplate 操作Hash时:  2.1添加数据,在实体转换为HashMap需要将对象字段的......
  • 阿里云ssh登陆报错Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
    今天遇到了一个怪事,之前的ecs密钥找不到了,无奈重新生成密钥并绑定到机器上。然而用nat网关配置好了之后,不能正常登陆。Permissiondenied(publickey,gssapi-keyex,gssap......
  • BM25 二叉树的后序遍历
    https://www.nowcoder.com/practice/1291064f4d5d4bdeaefbf0dd47d78541?tpId=295&tqId=2291301&ru=/exam/oj&qru=/ta/format-top101/question-ranking&sourceUrl=%2Fexam%2......
  • Redis缓存基础知识(二)
    一、Redis缓存常见问题1.缓存穿透:指访问一个缓存和数据库中都不存在的key,由于这个key在缓存中不存在,则会到数据库中查询,数据库中也不存在该key,无法将数据添加到缓存中,所以......
  • Redis的设计与实现(2)-链表
    链表在Redis中的应用非常广泛,比如列表键的底层实现之一就是链表:当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用......
  • 图解redis的5种数据类型底层原理
    redis的5种数据类型以及其底层实现redis是KV(key-valuepair)存储,不管是K还是V,底层都是对象(object组成)的,其中K是一个字符串对象(stringobject),V分别有我们常听说的5种......
  • Redis缓存的主要异常及解决方案
    作者:京东物流陈昌浩1导读Redis是当前最流行的NoSQL数据库。Redis主要用来做缓存使用,在提高数据查询效率、保护数据库等方面起到了关键性的作用,很大程度上提高系统的性能......
  • Ubuntu 22.04.1 安装 Redis 7.0.8
    Ubuntu22.04.1安装Redis7.0.8 1、获取Redis安装文件curl-fsSLhttps://packages.redis.io/gpg|sudogpg--dearmor-o/usr/share/keyrings/redis-archive-......