可算学到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讲解:(https://www.cnblogs.com/xuanyuan/p/13689484.html)
redis手册:(https://www.cnblogs.com/chenyanbin/p/12073107.html)
Redis分布式锁
Redis持久化(RDB与AOF)
Redis主从复制
Redis哨兵机制
Redis集群(Ruby,Jedis)
SpringBoot整合Redis
Redis秒杀项目
....(未完待续)