首页 > 其他 > 详细

Redis 学习-Redis 的其他功能

时间:2019-12-12 14:34:57      阅读:116      评论:0      收藏:0      [点我收藏+]

一、慢查询

找到 系统中瓶颈的命令

1. 客户端请求的生命周期:

技术分享图片

①. 慢查询通常发生在第三阶段。

②. 客户端超时不一定是慢查询,但慢查询是客户端超时的一个可能因素。

 

2. 相关配置

慢查询命令会存放在一个先进先出的队列

查询队列的长度:

config get slowlog-max-len

默认值是 128,我们通常建议设置为 1000

config set slowlog-max-len=1000

 

查询慢查询的定义时长:

config get slowlog-log-slower-than

默认值是 10000 微秒= 10 毫秒,我们建议设置为 1 毫秒

config set slowlog-log-slower-than=1000

 

3. 相关命令

slowlog get [n] # 查询慢查询队列的 n 条

slowlog len # 获取慢查询队列长度

slowlog reset # 清空慢查询队列

 

二、pipeline 流水线

流水线是一个类似于 mget / mset 的一个批量操作

区别在于 m 操作是 redis 原生的命令,他在执行队列中作为一个整体在排队。

而流水线是 Java 客户端的命令,在排队时会跟其他命令杂乱在一起排队,非原子性的。但返回时会一起返回。

1. Jedis 客户端直连:

Jedis jedis = new Jedis("127.0.0.1", 6379);
for (int i = 0; i < 100; i++) {
  Pipeline pipeline  = jedis.pipelined();
  for (int j = i * 100; j < (i + 1) * 100; j++) {
      pipeline.hset("hashkey:" + j, "field" + j, "value" + j);
  }    
 // 嗯嗯?逗号是什么鬼 pipeline.syncAndReturnAll(); }

2.  SpringBoot 提供的 RedisTemplate 客户端:

// 1 重写入参 RedisCallback 类的 doInRedis 方法
List<Object> list = redisTemplate.executePipelined((RedisConnection connection) -> {

    // 2 打开连接
    connection.openPipeline();

    // 3 要一次性执行的命令

    // 3.1 一个 set 操作
    connection.set("key1".getBytes(), "value1".getBytes());

    // 3.2 一个 mSet 操作
    Map<byte[], byte[]> tuple = new HashMap();
    tuple.put("m_key1".getBytes(), "m_value1".getBytes());
    tuple.put("m_key2".getBytes(), "m_value2".getBytes());
    tuple.put("m_key3".getBytes(), "m_value3".getBytes());
    connection.mSet(tuple);

    // 3.3 一个 get 操作
    connection.get("m_key2".getBytes());

    // 4 返回 null 即可
    return null;

}, RedisSerializer.string());

// 5 遍历结果
for (Object obj : list) {
    System.out.println(String.valueOf(obj));
}

执行结果:

技术分享图片

 

 

 

三、发布订阅

 

四、bitmap

减少内存的方案 

五、hyperloglog

极端的减少内存的方案 / 数据结构 

六、geo(地理信息定位)

存储经纬度,计算两地距离,范围计算等

Redis 学习-Redis 的其他功能

原文:https://www.cnblogs.com/libra0920/p/12027962.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!