redis
huanshirenjian
这个作者很懒,什么都没留下…
展开
-
redis系列1-数据结构和命令
1.数据结构1.1 字符串可以是字符串,还有数字,二进制(图片 音频 视频),最大不能超过512MB。命令:set:无论是否存在键值都设置成功。setnx:不存在键name时,返回1设置成功,存在失败返回0。可用分布式锁get:存在则返回value, 不存在返回nilmset:批量设值mget:批量得值incr: 必须为整数自加1,非整数返回错误,无键值从0自增返回1decr...原创 2019-05-04 10:44:12 · 88 阅读 · 0 评论 -
redis系列2-慢查询
1.慢查询redis命令的生命周期:发送、排队、执行、返回。慢查询只统计执行的时间。2.慢查询配置慢查询的阈值设置:(1)动态设置config set slowlog-log-slower-than 10000如果需要持久化保持到配置文件中需执行config rewrite。(2)修改配置文件在redis.conf文件中修改slowlog-log-slower-than 10000...原创 2019-05-04 11:01:12 · 171 阅读 · 0 评论 -
redis系列3-发布订阅
redis的发布订阅很简单,发布订阅的最专业的还是MQ。MQ里面发布订阅和主题或者队列打交道。redis里面发布和订阅和channel打交道。(1)发布消息publish channel:aaa “hello”(2)订阅消息subscrible channel:test(3)查看订阅数pubsub numsub channel:test(4)取消订阅unsubscrible ch...原创 2019-05-04 11:12:58 · 227 阅读 · 0 评论 -
redis系列4-持久化
redis持久化分为两种:RDB和AOF。1.RDBRDB持久化把当前进程数据生成快照(.rdb)文件保存到硬盘的过程,有手动触发和自动触发。(1)手动触发手动触发有有save和bgsave两命令。save命令:阻塞当前Redis,直到RDB持久化过程完成为止,若内存实例比较大会造成长时间阻塞。bgsave命令:redis进程执行fork操作创建子线程,由子线程完成持久化,阻塞时间很短...原创 2019-05-04 11:38:38 · 146 阅读 · 0 评论 -
redis系列5-集群
1.主从复制在从节点配置文件中加上slaveof 主节点ip,并且设置上只读slave-read-only=yes。主从复制肯定是有延迟的,repl-disable-tcp-nodelay参数决定是否关闭TCP_NODELAY,默认为关闭。关闭时无论大小都会及时发布到从节点,占带宽,适用于主从网络好的场景。开启时主节点合并所有数据成TCP包节省带宽,默认为40毫秒发一次。主从复制时,为提供主节...原创 2019-05-04 14:34:53 · 152 阅读 · 0 评论 -
redis系列6-RESP协议
redis原生的API,如果要发送N个命令,需要发送N个请求。这种比较耗费网络连接,我们可以借用redis提供的Pipeline管道一次发送多个命令执行。Pipeline管理实际上就是基于RESP协议。1.RESP协议RESP(REdis Serialization Protocal)全称是redis序列化协议。redis的请求基本都是命令+参数,所以可以将多个命令按照resp协议进行组合,...原创 2019-05-04 15:23:46 · 404 阅读 · 0 评论 -
redis系列6-缓存雪崩、缓存击穿、缓存穿透
我们在使用redis缓存时候常用方案是先查redis,如果redis有返回,没有则查数据库,数据库查出来后放入redis。1.缓存雪崩缓存雪崩是指缓存中数据在同一时间大量失效,导致查询全部落入数据库。解决方案:数据的过期时间随机设置,防止同时过期设置热点数据永远不过期。2.缓存击穿缓存击穿是指某一条热点数据失效,导致此时大批量查询这条数据的请求落到数据库。解决方案:加锁,只有第一...原创 2019-05-04 15:58:44 · 606 阅读 · 0 评论