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

一、java客户端(jedis)

添加maven配置

        <dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
			<version>3.7.0</version>
		</dependency>

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");

        /**
         *  Jedis jedis = new Jedis(String host, int port, int connectionTimeout, int soTimeout)
         * host : Redis节点的所在机器的IP
         * port : Redis节点的端口
         * connectionTimeout :客户端连接超时
         * soTimeout :客户端读写超时
         * */

直连和连接池的对比

二、 慢查询

 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] #一个或多个

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值