Redis键值设计

1.优雅的key

在这里插入图片描述

2.拒绝BigKey

2.1.什么是BigKey

在这里插入图片描述

2.2.BigKey的危害

在这里插入图片描述

2.3.如何发现BigKey

在这里插入图片描述

scan扫描示例代码

    final static int STR_MAX_LEN = 10 * 1024;
    final static int HASH_MAX_LEN = 500;

    @Test
    void testScan() {
   
        int maxLen = 0;
        long len = 0;

        String cursor = "0";
        do {
   
            // 扫描并获取一部分key
            ScanResult<String> result = jedis.scan(cursor);
            // 记录cursor
            cursor = result.getCursor();
            List<String> list = result.getResult();
            if (list == null || list.isEmpty()) {
   
                break;
            }
            // 遍历
            for (String key : list) {
   
                // 判断key的类型
                String type = jedis.type(key);
                switch (type) {
   
                    case "string":
                        len = jedis.strlen(key);
                        maxLen = STR_MAX_LEN;
                        break;
                    case "hash":
                        len = jedis.hlen(key);
                        maxLen = HASH_MAX_LEN;
                        break;
                    case "list":
                        len = jedis.llen(key);
                        maxLen = HASH_MAX_LEN;
                        break;
                    case "set":
                        len = jedis.scard(key);
                        maxLen = HASH_MAX_LEN;
                        break;
                    case "zset":
                        len = jedis.zcard(key);
                        maxLen = HASH_MAX_LEN;
                        break;
                    default:
                        break;
                }
                if (len >= maxLen) {
   
                    System.out.printf("Found big key : %s, type: %s, length or size: %d %n", key, type, len);
                }
            }
        } while (!cursor.equals("0"));
    }

2.4.如何删除BigKey

在这里插入图片描述

3.恰当的数据类型

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

相关推荐

  1. redis相关命令整理

    2024-01-18 12:48:04       61 阅读
  2. Redis设置一个对并为其指定过期时间

    2024-01-18 12:48:04       50 阅读
  3. Redis设置一个对并为其指定过期时间

    2024-01-18 12:48:04       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-18 12:48:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-18 12:48:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-18 12:48:04       82 阅读
  4. Python语言-面向对象

    2024-01-18 12:48:04       91 阅读

热门阅读

  1. 如何解决redis热点key问题

    2024-01-18 12:48:04       52 阅读
  2. Go自研微服务框架-日志处理

    2024-01-18 12:48:04       43 阅读
  3. Android设置夜间模式的主题样式

    2024-01-18 12:48:04       49 阅读
  4. .Net CSRF 跨站点请求伪造漏洞

    2024-01-18 12:48:04       51 阅读
  5. QT基础篇(9)QT5文件及磁盘处理

    2024-01-18 12:48:04       66 阅读
  6. 6.【CPP】Date类的实现

    2024-01-18 12:48:04       46 阅读
  7. 用Python实现给图片去黑边

    2024-01-18 12:48:04       47 阅读
  8. Nginx三种虚拟主机配置

    2024-01-18 12:48:04       47 阅读