Redis-客户端以及其它使用(三)

Redis-客户端以及其它使用(三),第1张

Redis-客户端以及其它使用(三) 一、java客户端(jedis)

添加maven配置

        
			redis.clients
			jedis
			3.7.0
		

jedis 直连

   //生成一个redis对象,负责和指定redis节点进行通信 tcp连接
        Jedis jedis = new Jedis("127.0.0.1",6379);

        //jedis执行set *** 作
        jedis.set("hello","world");

        //jedis 执行get *** 作 value = “world”
        jedis.get("hello");

        

直连和连接池的对比

二、 慢查询

 Redis慢查询日志可以记录超过指定时间的查询。运行时间不包括各种I/O时间,例如:连接客户端,发送响应数据等,而只计算命令执行的实际时间(这只是线程阻塞而无法同时为其他请求服务的命令执 行阶段)

你可以为慢查询日志配置两个参数:一个指明Redis的超时时间(单位为微秒)来记录超过这个时间的命令 另一个是慢查询日志长度。当一个新的命令被写进日志的时候,最老的那个记录从队列中移除。

1、生命周期

发送请求——>排队(单线程)——>执行命令——>返回结果

说明:

慢查询发生在第三阶段(执行命令)

客户端超时不一定就是慢查询导致的,但是慢查询是客户端超时的一个可能因素

2、配置

修改配置文件 redis.conf 重启

slowlog-log-slower-than:设置慢查询的时间(单位:微秒)默认值10000

slowlog-max-len:设置队列长度 默认值128

动态配置:

config set slowlog-log-slower-than 10000

config set slowlog-max-len 1000

3、慢查询日志命令

1. slowlog get [n]:获取慢查询队列

2. slowlog len:获取慢查询队列长度

3. slowlog reset:清空慢查询队列

建议:

1. slowlog-max-len不要设置过大,默认10ms,通常设置1ms

2. slowlog-log-slower-than不要设置过小,通常设置1000左右。

3.理解命令生命周期。

4.定期持久化慢查询。

三、pipeline

流水线


 注意点:

1、redis的命令时间是微妙级别,特别快的

2、pipeline每次条数要控制网络

为了解决N次网络的减少

建议:

1、注意每次pipeline 携带数据量

2、pipeline每次只能作用在一个redis节点上

四、发布订阅

角色:

发布者(publisher)

订阅者(subscriber)

频道(channel)

发送命令:publisher channel message

订阅消息:subscriber [channel]  #一个或多个

取消订阅:unsubscriber [channel] #一个或多个

发布订阅:发布频道消息之后,所有订阅的都可以收到信息

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5638458.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存