Redis-redis基本学习汇总[更新中]
可算学到redis来了,路漫漫其修远兮,加油加油,慢慢总结。
linux安装redis:(https://www.cnblogs.com/lywJ/p/10697460.html) 若安装不成功-将127.0.0.1改成0.0.0.0+重启redis)
Redis基本类型:
- String(字符类型)
- Hash(散列类型)
- List(列表类型)
- Set(集合类型)
- SortedSet(有序集合类型,简称zset)
- bitmap(布隆过滤器)
Redis事务
- Redis的事务是通过MULTI,EXEC,DISCARD和WATCH这四个命令来完成。
- Redis的单个命令都是原子性的,所以这里确保事务性的对象是命令集合。
- Redis将命令集合序列化并确保处于一事务的命令集合连续且不被打断的执行。
- Redis不支持回滚的操作。
Redis缓存穿透、缓存击穿、缓存雪崩、缓存淘汰策略、布隆过滤器
缓存淘汰策略:redis缓存不是无限,当快满的时候就要进行淘汰,有下面8种策略:
- noeviction:返回错误,不会删除任何键值
- allkeys-lru:使用LRU算法删除最近最少使用的键值
- volatile-lru:使用LRU算法从设置了过期时间的键集合中删除最近最少使用的键值
- allkeys-random:从所有key随机删除
- volatile-random:从设置了过期时间的键的集合中随机删除
- volatile-ttl:从设置了过期时间的键中删除剩余时间最短的键
- volatile-lfu:从配置了过期时间的键中删除使用频率最少的键
- allkeys-lfu:从所有键中删除使用频率最少的键
缓存击穿:上面淘汰策略中,某个热点数据到了过期时间就被删掉,恰好来了大量请求,导致大量访问mysql
缓存雪崩:上面某个热点数据变成了大量热点数据都同时过期,然后来了大量请求,导致“雪崩”式访问mysql
缓存穿透:大量请求redis中不存在的数据(redis不存在就访问mysql),导致对mysql进行了大量IO
布隆过滤器(实质是bitArray数据与哈希函数构成):查找数据不存在即一定不存在(有效解决了缓存穿透的问题)
Redis持久化(RDB与AOF)
参考链接:
redis讲解:(https://www.cnblogs.com/xuanyuan/p/13689484.html)
redis手册:(https://www.cnblogs.com/chenyanbin/p/12073107.html)
Redis分布式锁
Redis主从复制
Redis哨兵机制
Redis集群(Ruby,Jedis)
SpringBoot整合Redis
Redis秒杀项目
....(未完待续)
我曾七次鄙视自己的灵魂:
第一次,当它本可进取时,却故作谦卑;
第二次,当它在空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它自由软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。