精华内容
下载资源
问答
  • 2022-04-12 15:40:05

    redis4.+可以通过memory usage key获取指定keyvalue值所占用内存,但是没有批量获取的,写了一个简单的脚本可以批量查看。

    ./redis-cli keys "*" | awk '{printf $0 " " ;system("/home/redis/redis-cli memory usage " $0);}'
    

    需自行替换redis-cli路径

    若数据量过大,可以考虑存储到excel中查看

    ./redis-cli keys "*" | awk '{printf $0 "," ;system("/home/redis/redis-cli memory usage " $0);}'  > sizefile.csv
    
    更多相关内容
  • 今天小编就为大家分享一篇Python获取Redis所有Key以及内容的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 在shell中,读取redis值方式

    千次阅读 2019-04-23 09:52:28
    这里介绍,代码如下: ...redis-cli -h 127.0.0.1 -p 6379 -a 123456 -n 1 keys '*' | while read key do key_val=`redis-cli -h 127.0.0.1 -p 6379 -a 123456 -n 1 get ${key}` echo ${key} ${k...

    这里介绍,代码如下:

    #!/usr/bin/env bash

    redis-cli -h 127.0.0.1 -p 6379 -a 123456 -n 1 keys  '*' |
    while read key
    do
        key_val=`redis-cli -h 127.0.0.1 -p 6379 -a 123456 -n 1 get ${key}`
        echo ${key}  ${key_val}
    done
    其中:

    -h 代表redis安装地址

    -p 代表redis端口

    -a 代表redis访问密码

    -n 代表redis数据库的db index
     

    Redis 命令用于在 redis 服务上执行操作。所以我们必须要启动Redis服务程序,也就是redis安装目录下的redis-server.exe,你可以双击执行,也可以打开cmd窗口,将路径定位到Redis安装目录下,通过redis-server命令执行。

    要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中,也就是redis-cli.exe,同理,可以双击执行也可以通过命令执行。

    语法

    Redis 客户端的基本语法为:

    $ redis-cli

    要先启动redis服务端:
     C:\windows\system32\cmd.exe -redis-server.exe redis.conf

    keys *                    //获取所有key列表
    del key                    //删除key
    expire key xx                   //设置key的过期时间(xx秒后过期)
    ttl key                  //查看key的过期时间
     

    select 0-15             //选择库
    flushall                   //清空整个redis服务器数据,所有的数据库全部清空
    flushdb                  //清除当前库,redis中默认有16个数据库,名称分别为0,1,2...15
     

     redis怎么实现栈和队列?          -->           都用list,控制一边进同一边出就是栈,一边进另一边出就是队列.

    hash类型类似于php的数组

    hset key name value      //添加一个name=>value键值对到key这个hash类型
    hget key name       //获取hash类型的name键对应的值
    hmset key name1 key1 name2 key2       //批量添加name=>value键值对到key这个hash类型
    hmget key name1 name2      //批量获取hash类型的键对应的值
    hkeys       //返回哈希表 key 中的所有键
    hvals      //返回哈希表 key 中的所有值
    hgetall       //返回哈希表 key 中,所有的键和值
     

    通过配置文件设置密码-长久设置

    在配置文件 redis.conf 中增加一行代码
    requirepass 123456
    将密码123456设置到配置文件中,redis启动时加载该文件,即可启用密码

     安装

       make

       make    test        -- 如果报错,则安装tcl

       make    PERFIX=/usr/local/redis    install

       cp    /usr/src/redis-3.0.3/redis.conf    /usr/local/redis

       ./bin/redis-server    ./redis.conf        -- 开启redis服务

       vim    redis.conf

       daemonize    yes        --放在后台选项

       ./bin/redis-cli    -h    localhost    -p    6379

       bin/下的文件

       redis-check-aof    redis-check-dump        -- 日志文件

       redis-benchmark        -- 检测工具

       ./redis-benchmark    -n    100000    -c    60

       string字符串类型

       keys    *        --查看所有键值

       set    age    19        --设置键值的数据

       get    age            --查看键值的数据

       keys    age        --查看键值本身

       setnx    name1    zhangsan        --防覆盖新建键值

       setex    name2    30    Janni        --新建或修改临时键值,有效时间30s

       ttl    name2        --查看键值的有效期

       mset    a1    111    a2    222    a3    333        --设置多个键值

       mget    a1    a2    a3        --查看多个键值

       msetnx    a3    444    a4    555        --创建多个防覆盖机制键值

       setrange    a3    2    lisi        --替换,从第二个字符开始

       getset    a3    "xxx"        --查看原值并修改

       getrange    a3    0  5        --查看a3键值的0-5之间的字符

       incr    c1        --键值依次增加1

       incrby    c1    100        --键值依次增加100,值可自定义

       decr    c1        --键值依次减少1

       decrby    c1    100        --键值依次减少100,值可自定义

       strlen    b1        --查看键值的长度

       append    b1    lisi        --追加键值的数据

       del    b1        --删除键值

       hash类型

       hset    hash1    name1    hanhan        --创建第一组数据

                      键        字段           键值

       hget    hash1    name1        --查第一组的第一个字段

       hsetnx    hash1    name1    Janni        --防覆盖创建

       hmset    hash1    name1    name2        --创建多个字段

       hmget    hash1    name1    name2        --查看多个字段

       hlen    hash1            --查字段个数

       hgetall    hash1        --查指定键中的字段和值

       hkeys    hash1        --查指定键中的字段名称

       hvals    hash1        --查指定键中的数值

       hdel    hash1    name3        --删除指定键中的字段

       hincrby    hash1    id1    5        --hash1键中的id1字段每次增加5

       list双向列表

       1    2    3    4    5                   正数下标

     -5    -4    -3    -2    -1              负数下标

    lpush    list1    1    2    3    4        --创建队列向左

    rpush    list1    one    two    three        --创建队列向右

    lrange    list1    0    -1            --查list1中所有的队列

    linsert    list1    before    two    hi        --在list1列表中的two前面插入hi队列    (before | after)

    lset    list1    1    “six”        --修改队列中元素的值

    lrem    list1    -2    hi        --删除元素中重复的值,其中-2代表几个 ,并且是倒序的

    ltrim    list1    0    3        --保留list1上以下标为主的0-3的队列

    lpop    list2         --删左边第一个

    rpop    list2        --删右边第一个

    rpoplpush    list1    list2        --把list1的最后一个元素放到list2中

    llen    list2    查有多少个队列

    lindex    list2    1        --通过下标查看元素值

       set集合

       交集        差集        并集

    sadd    set1    aa    bb    cc        --添加set集合

    smembers    set1        --查看集合中所有的元素

    srandmember    set1        --随机查看

    spop    set1        --随机删除

    srem    set1        --指定删除

    scard    set1        --查看该集合有多少个元素

    sismember    set1    bb        --查看bb是否属于set1集合的元素

    sdiff    set1    set2        --查看set1和set2的差集

    sdiffstore    set3    set1    set2        --查看set1和set2的差集,并写入到set3

    sinter    set1    set2        --查看set1和set2的交集

    sinterstore    set3    set1    set2        --查看set1和set2的交集,并写入到set3

    sunion    set1    set2        --查看set1和set2的并集

    sunionstore    set3    set1    set2        --查看set1和set2的交集,并写入到set3

       zset有序集合    sorted    set

    zadd    zset1    11    aa    22    bb    33    cc        --创建有序集合

    zrange    zset1    0  -1    withscores       --查看有序集合,withscores参数是查看有序集合的分数    从小到大的顺序

    zrevrange    zset1    0  -1    withscores        --查看有序集合,从大到小的顺序

    zrangebyscore    zset1    10    20        --查有序集合zset1中分数10-20之间的元素

    zrem    zset1    aa        --删除有序集合中指定的值

    zincrby    zset1    5    aa        --有序集合zset1中aa的值依次增加5,如不存在,则创建

    zrank    zset1    aa        --通过元素名获取下标,从小到大的顺序

    zrevrange    zset1    aa        --通过元素名称获取下标,从大到小的顺序

    zcard    zset1        --查看zset1中有几个元素

    zcount    zset1    10  20    --查看zset1中10-20之间的有多少个元素

    zremrangeburank    zset1    1  2        --根据下标删除数据

    zremrangebyscore    zset1    10    22        --根据分数删除数据

    zinterstore    zset3    2    zset1    zset2        --取2个有序集合的交集,并保存到zset3

    zunionstore    zset3    zset3    2    zset1    zset2        --取2个有序集合的并集,并保存到zert3

       全局命令

    dbsize        --统计所有键值的数量

    exists    aa        --查看某个键值是否存在

    expire        设置生效时间

    rename    d1    d2    --改键值的名称,d1改为d2

    type    a1        --查a1键值的类型

    info        --查数据库版本信息

    select    2        --选择其它数据库    范围(0-15)

    more    d2    1        --移动键值到某数据库

    flushdb        --清空当前数据库

    flushdball        清空所有数据库

       redis应用

    启用密码:

       vim    /usr/local/redis/redis.conf

       requirepass    123456

    关闭服务:

       pkill    redis

    使用密码登陆:

       /usr/local/redis/bin/redis-server    /usr/local/redis/redis.conf        开启服务

       /usr/local/redis/bin/redis-cli    -h   localhost   -p   6379        登陆redis

    数据库备份和还原

       备份:

       save    保存到dump.rdb文件

       cp -p  /usr/local/redis/dump.rdb  /root            把备份文件拷贝到/root下

       还原:

       cp -p /root/dump.rdb  /usr/local/redis

       设置备份文件的路径:

       vim    redis.conf

       dir    /usr/local/redis

    设置主从

       cp    -r    redis    redis-slave

       修改主配置文件的参数,不要和主服务器的相同

       vim    redis-slave/redis.conf

       pidfile    /usr/local/redis-slave/redis.pid

       port    6380

       dir    /usr/local/redis-slave        --指定备份的目录

       slaveof    127.0.0.1    6379        --主服务器的IP地址和端口

       masterath    123456            --有密码则开启

    原理:

    (1)Slave服务器连接到Master服务器.

    (2)Slave服务器发送SYCN命令.

    (3)Master服务器备份数据库到.rdb文件.

    (4)Master服务器把.rdb文件传输给Slave服务器.

    (5)Slave服务器把.rdb文件数据导入到数据库中.

       开启从服务器的redis进程:

       /usr/local/redis-slave/bin/redis-server    /usr/local/redis/redis.conf

       登陆redis:

       /usr/local/redis-slave/bin/redis-cli    -h    localhost   -p    6380    -a    123456



     

    展开全文
  • 主要给大家分享介绍了关于Redis获取某个大key的一个脚本实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
  • 查看redis的Value大小

    千次阅读 2020-12-24 16:06:41
    强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】最近项目一...【探索value大小】一、安装redis-rdb-tools(项目地址:github)二、获取redis的rdb文件1、确保redis的配置文件(redis...

    强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan

    【前言】

    最近项目一个需求,需要借助于redis缓存来实现,发现需要存的value值有些大;究竟有多大那???伴随这个疑问,开始一场探索之旅。

    【探索value值大小】

    一、安装redis-rdb-tools(项目地址:github)

    二、获取redis的rdb文件

    1、确保redis的配置文件(redis.conf)开启rdb备份

    save 900 1

    save 300 10

    save 60 10000

    rdbcompression yes

    dbfilename dump.rdb

    2、在redis的目录下找到dump.rdb文件

    三、利用redis-rdb-tools对rdb文件解析成CSV文件(生成一个result.csv),命令:

    rdb -c memory dump.rdb > result.csv

    四、result.csv内容

    五、有时候key值特别多,可以将CSV文件导入mysql中

    1、mysql建表语句

    CREATE TABLE `rdb` (

    `DATABASE` int(11) DEFAULT NULL,

    `type` varchar(128) DEFAULT NULL,

    `KEY` varchar(128) DEFAULT NULL,

    `size_in_bytes` int(11) DEFAULT NULL,

    `encoding` varchar(128) DEFAULT NULL,

    `num_elements` int(11) DEFAULT NULL,

    `len_largest_element` varchar(128) DEFAULT NULL

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    2、利用navicat等mysql客户端将CSV导入到表中,可以很方便进行查看;

    【总结】

    1、查看redis的值大小,有助于我们分析系统,如果特别大可以做一些拆分等优化;

    2、多些疑问,多些探索和实践。

    展开全文
  • 一:首先是获取一个redis数据库上的所有keys public static long getScan(String hostname,int port){ Jedis jedis =new Jedis(hostname,port); // 游标初始为0 String cursor = ScanParams.SCAN_P

    因项目要求需要展示捉去redis集群的所有key值数量,中间找了很多资料翻了很多博客,没有找到现成的,只能自己总结了。代码如果有什么问题欢迎反馈。
    一:首先是获取一个redis数据库上的所有keys

    	public static long getScan(String hostname,int port){
    		Jedis jedis =new Jedis(hostname,port);
            // 游标初始值为0
            String cursor = ScanParams.SCAN_POINTER_START;
            String key = "*";
            ScanParams scanParams = new ScanParams();
            scanParams.match(key);// 匹配以 PLFX-ZZSFP-* 为前缀的 key
            scanParams.count(1000);
            List<String> listAll=new ArrayList<String>();
            while (true){
                //使用scan命令获取数据,使用cursor游标记录位置,下次循环使用
                ScanResult<String> scanResult = jedis.scan(cursor, scanParams);
                cursor=scanResult.getCursor();
                List<String> list = scanResult.getResult();
                listAll.addAll(list);
                System.out.println("获取" + listAll.size()  
                    + "条数据,cursor:" + cursor);
                if ("0".equals(cursor)){
                    break;
                }           
            }
            jedis.close();
            return listAll.size();
    	}
    

    二:获取集群所有数据库的keys

    public  long getRedisCount(){
    		long countAll=0l;
    		long count=0l;
    		Map<String,String> map=setRedis();
    		for(String str:map.keySet()){
    			String hostname=str.split(":")[0];
    			int port=Integer.parseInt(str.split(":")[1]);
    			Jedis jedis =new Jedis(hostname,port);
    			Client client=jedis.getClient();
    			client.info();
    			String info=client.getBulkReply();
    			String info1=info.trim().split("role:")[1].substring(0, 6).trim();
    			if(info1.equals("master")){//判断该redis是否是主数据库,是就执行keys获取,不是就不执行
    				count=getScan(hostname, port);
    				countAll+=count;
    			}
    			jedis.close();
    		}
    		System.out.println("获取"+countAll+"条数据");
    		return countAll;
    	}
    	public static Map<String,String> setRedis(){
    		Map<String,String> map=new HashMap<String, String>();
    		map.put("1.1.1.1:7001", "1.1.1.1:7001");
    		map.put("1.1.1.1:7002", "1.1.1.1:7002");
    		map.put("1.1.1.1:7003", "1.1.1.1:7003");
    		map.put("1.1.1.1:7004", "1.1.1.1:7004");
    		map.put("1.1.1.1:7005", "1.1.1.1:7005");	
    		map.put("1.1.1.1:7006", "1.1.1.1:7006");
    		return map;
    	}
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Rediszyjk rediszyjk=new Rediszyjk();
    		rediszyjk.insertRedisZyjk();
    	}
    

    注意:jedis.close()这个方法只有3.0以上版本的redis支持,加载jar包的时候要下载3.0以上版本的。
    参考文章:
    http://www.mamicode.com/info-detail-2906857.html scan获取所有keys
    https://blog.csdn.net/softwave/article/details/70992794 获取redis数据库的主从关系

    展开全文
  • redisTemplate获取redis服务器信息

    千次阅读 2021-08-05 10:55:46
    获取RedisConnectionFactory factory = redisTemplate.getConnectionFactory();RedisConnection conn = null;Map redisInfo = null;try {conn = RedisConnectionUtils.getConnection(factory);redisInfo = conn.info...
  • java 获取redis文件夹下的所有key

    千次阅读 2021-07-29 16:33:55
    1、获取redis文件夹下所有key 测试数据(可能有些人对redis的使用也比较少,如何使用文件夹也不清楚,尾部也有补充) 利用redisTemplate的keys()——通配符获取key的方法,即可实现 2、添加...
  • 主要介绍了Redis 不使用 keys 命令获取键值信息的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
  • 第一种:直接获取redis连接,通过redis.()方法测试连接,如果返回PONG则证明连接正常 //1> jedis的入门代码案例,测试连接 @Test public void test01(){ //1. 获取java连接 redis的连接对象 Jedis jedis = new ...
  • 主要介绍了java操作Redis缓存设置过期时间的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Redis的key的获取

    千次阅读 2021-04-26 20:43:10
    redis的所有的key的获取 一、获取方式 redis的命令keys(*) 可以获取所有的key。但是此种方式当数据量大的时候,会产生阻塞的情况。 redis的key还可以通过scan命令获取key。scan采用渐进式遍历的方式来解决keys命令...
  • 如何批量获取redis数据呢?

    千次阅读 2020-10-18 23:59:37
    redis作为我们接口开发中的首选缓存,当从redis中每次获取一个key的value时,接口响应时间上一般是没啥问题的,但是当需要获取多个key的value时,一般需要使用mget等批量获取的方法。但是当value是以压缩格式写入到...
  • 如何读取redis中的key中的结果

    万次阅读 2018-09-08 13:15:34
    redis有5种类型,不同的类型有不同的命令来获取: 字符直接 get key 队列 左端弹出一个元素 LPOP key 哈希 HGET key field 集合 SMEMBERS key 返回集合中的所有元素 有序集合ZRANGE key start stop...
  • public static final String prefix = "helllojava_*"; //这个*一定要加,否则无法模糊查询 Set<String> keys = stringRedisTemplate.keys(prefix); for(String key : keys){ System.out.println(key);...
  • 获取 redis 所有的键值

    万次阅读 2018-12-08 14:57:40
    $conf = [ 'host' =&gt; '127.0.0.1', 'port' =&gt; 6379, 'pwd' =&gt; '', 'prefix' =&...$redis = new \Redis(); $redis-&gt;connect($conf['host'], $conf['port']); $redis-&g...
  • 如何获取redis详细信息及命令详解

    千次阅读 2019-11-21 10:15:30
    1、在redis文件夹中找到redis-cli.exe,并打开。 2、在里面输入info。 3、里面域的详细信息 字段 描述 Server Redis服务器的信息 redis_version:2.8.17 Redis 服务器版本 redis_git_sha1:473f3090 Git SHA1 redis_...
  • redis里面的hash存储和获取

    千次阅读 2018-12-24 17:30:31
    获取 RedisUtil.Hash.hget(“messageCode”, phoneNumber); / * * @Description: 返回哈希表 key 中给定域 field 的 * @author WangYaFeng * @Date 2018年10月23日 16:32 * @param key * @param field 存储...
  • hget 获取hash类型的 hget 键名称 键 hmget 获取多个hash的 hmget 键名称 键 键 键 ... hgetall 获取hash中的所有数据(键和) hgetall 键名称 php代码 $redis->hgetall('hash键')
  • 1、背景在redis中,对于一个很大的key,例如hash类型,直接查看其会非常慢,于是想到写个脚本通过增量迭代来获取2、具体的脚本如下:功能:扫描redis某个key里面的所有元素使用方法:python bigkey_save_values.py...
  • 记录一次从redis获取值为null的过程

    千次阅读 2020-07-21 14:06:27
    (2)checkMember(需要获取redis值), (3)dynamicLogin (需要获取redis值;验证成功,删除redis值) (4)tenantLogin(需要获取redis值;验证成功,删除redis值) 逻辑上是(1)先发送短信验证码 (2)->...
  • 获取远程redis服务器上的

    千次阅读 2016-05-17 22:48:45
    环境: 两台虚拟机,ip分别为:192.168.2.100 、192.168.2...redis 安装目录 /usr/local/redis-3.2.0 , redis-server,redis-cli 在 /usr/local/redis-3.2.0/src下 100 机器上有个 key为name ,value 为 11111的
  • redis获取相应的数据

    2021-11-09 08:54:36
    redis有5种类型,不同的类型有不同的命令来获取: 字符直接 get key 队列 前端弹出一个元素 lopo key 哈希 hget key field 集合 smembers key 返回集合中的所有元素 有序集合zrange key start stop 获取集合中...
  • php获取redis的某个键的过期时间

    千次阅读 2019-01-07 13:34:36
    上网查了,我没找到有php 获取redis的某个键的过期时间 自己摸索了一下 redis−&amp;amp;gt;TTL(redis-&amp;amp;gt;TTL(redis−&amp;gt;TTL(key); 就可以拿到过期时间(毫秒); -1为长期缓存 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 202,452
精华内容 80,980
关键字:

获取redis的值

友情链接: shishishousuo.rar