
redis基础
文章平均质量分 71
一个锤子啊
一个进城打工的新时代产业工人
展开
-
Redis Pipeline
Redis与客户端是通过TCP协议进行沟通的,这代表着执行一条命令,都和客户端建立tcp连接,执行命令,然后发返回结果,释放连接。如果在大量执行执行命令,其中的消耗也不可小觑。Redis引入了Pineline技术,实际上就是某一客户端把多个redis操作缓存起来,一并发送到redis执行,最后结果也打包返回。 Spring中的RedisTemplate也提供了对pipeline的支持,下面使用RedisTemplate做普通redis操作和pipeline操作的耗时对比: package com.learn原创 2021-05-23 21:06:41 · 257 阅读 · 0 评论 -
redis慢查询
前言 Redis慢查询可以记录查询时长超过一定时间的查询,可发人员和运维人员可以据此定位慢操作。 相关命令 下面查询慢查询的两个配置: 127.0.0.1:6379> config get slowlog* 1) "slowlog-max-len" 2) "128" 3) "slowlog-log-slower-than" 4) "10" 命令 含义 slowlog-max-len 慢查询的日志大小,当满了之后,旧日志会被删除,建议设计1000以上 slowlog-log-slo原创 2021-05-16 22:19:31 · 1629 阅读 · 2 评论 -
redis主从复制中数据同步的原理
主从复制 在Redis中通过salveof命令或者在配置中设置slaveof选项值就可让当前主机称为某台redis的从节点。 一个master可以有多个slave 一个slave只能有一个master 数据流向是单向的,从master到slave 出master可以有slavle,slave也可以有slave。多个服务器之间构成了网状结构 ...原创 2021-05-01 22:40:48 · 682 阅读 · 1 评论 -
redis持久化之rdb
redis持久化之rdbRDB相关配置rdb快照的触发条件rdb快照过程rdb文件结构rdb和aof文件的加载顺序 Redis的RDB持久化方式是指将某个时刻的内存数据进行快照,生成.rdb文件可以用于恢复快照时刻redis的内存数据。 RDB相关配置 我们可以在redis.conf中进行rdb相关的配置,具体配置如下 配置 说明 save 600 1 距离上次快照过去了600秒且发生了至少一个key的修改就进行rdb快照,如果没有配置这些配置表示关闭 stop-writes-on-bg原创 2021-03-20 19:24:42 · 286 阅读 · 0 评论 -
图解redis之aof持久化
aof相关配置 reids中aof持久化是指将reids中的数据以一条条写命令来表示,当redis重启时,重新执行这些写命令来达到恢复数据的目的。其中的重点的是理解控制aof文件生成重写的几个配置和其中的过程。 aof重写 如果开启aof持久化,当达到auto-aof-rewrite-percentage和auto-aof-rewrite-min-size设置的阈值的时候会触发aof重写。aof重写即将redis中的数据转换为一条条的写命令,精简了其中的重复命令来达到减少aof文件的目的。 ...原创 2021-03-16 00:55:45 · 183 阅读 · 0 评论 -
redis消息订阅
redis消息订阅发布订阅模式生产者/消费者模式例子命令两种订阅方式:频道订阅和模式订阅 发布订阅模式 发布订阅模式(pubsub pattern)中,消息发布者(publisher)发布消息(message)到一个频道(channel/topic),订阅者(subscriber)订阅其中的频道。当发布者发布消息到一个频道时,所有的订阅这个频道的订阅者都会收到这个消息。 #mermaid-svg-W4iw6i6PSxw88rfr .label{font-family:'trebuchet ms', verd原创 2021-03-14 18:49:27 · 287 阅读 · 1 评论 -
redis事务
目录redis事务与事务相关的命令redis事务的ACID特征原子性一致性隔离性持久性事务处理过程 redis事务 redis虽是非关系型数据库,但也支持事务。redis事务由mutli,exce,discard,watch等命令实现。下图展示了再redis中开启并执行一个事务的过程。首先使用watch命令监视了name,age两个key,然后使用multi开启了一个事务,最后使用exec执行了这个事务。 127.0.0.1:6379> set name hello OK 127.0.0.1:6379原创 2021-03-01 00:49:13 · 132 阅读 · 0 评论 -
理解redis中的scan
scan命令的用法基本用法scan命令的保证(guarantees)每次scan返回元素的数量count选项match选项type选项并行遍历中断遍历使用错误的游标值遍历中断的保证(Guarantee of termination)为什么在遍历聚合数据类型时会一次返回所有元素 基本用法 redis在2.8版本提供了scan相关命令用来遍历集合中的元素。和keys,smembers命令遍历大集合场景下会阻塞redis一定时间不同,scan命令每次遍历只会返回一定数量集合元素和当前的遍历位置的游标,时间非常短,原创 2021-02-26 00:50:00 · 2175 阅读 · 0 评论 -
Redis数据类型之哈希(hash)命令
Redis数据类型之哈希(hash)命令设置哈希表域的值1.hset 设置哈希表的field2.hsetnx 为不存在的filed设置value3.hmset 为多个field设置value获取哈希表中的域和值1.hget 获取一个域的值2.hmget 获取多个域的值3.hgetall 获取所有域的值4.hkeys 获取所有域5.hvals 获取所有值哈希表统计1.hlen 域或值的数量对值的操作1.hincrby 为哈希表中的域加上增量值2.hincrbyfloat 为哈希表中的域加上浮点增量值3.hex原创 2021-02-03 00:15:51 · 410 阅读 · 0 评论 -
redis数据类型之字符串(String)类型的基本命令
redis数据类型之字符串(String)类型设置值1. set设置多个键值对2. mset设置多个键值对3. setnx设置不存在的键值对4. msetnx设置多个不存在的键值对获取值1. get获取值2. mget获取多个键值对的值3. getset为键设置新值4. strlen计算值的字符长度5. getrange获取子字符串6. setrange替换字符串7. append追加字符串生存时间1. setex设置过期时间2. psetex设置过期时间3. persist将键值对变成永久有效4. tt原创 2021-02-02 01:06:27 · 1622 阅读 · 1 评论