本文首发于cartoon的博客
转载请注明出处:https://cartoonyu.github.io/c...
Redis 为什么是单线程的?
参考博客户
- https://blog.csdn.net/chenyao...
- Redis是基于内存的,瓶颈通常是内存大小以及带宽,与CPU没有太大联系
什么是缓存穿透?怎么解决?
参考地址
- https://www.jianshu.com/p/400...
缓存穿透
- 缓存是key命中时数据写入内存的
- 缓存穿透是指利用不存在key进行缓存查询,当缓存不存在此key则到数据库查询,当请求量级比较大时,数据库有可能宕机
解决方法
- 在某些特定场景使用验证码
布隆过滤法
- 利用多种HASH算法对数据标识位进行缓存
Redis 支持的数据类型有哪些?
string
- 字符串
hash
- 散列
list
- 列表
- 内部使用双向链表实现
- 访问端元素较快,通过索引访问较慢
set
- 无序集合
- 内部通过value为null的散列表实现
zset
- 有序集合
Redis 支持的 Java 客户端都有哪些?
参考博客
- https://blog.csdn.net/moonpur...
Jedis
优点
- 轻量简洁
- 支持连接池
- 支持pipelining、事务、LUA Scripting、Redis Sentinel、Redis Cluster
缺点
- 不支持读写分离
- 文档支持不足
Redisson
- 官方推荐
优点
- 采用非阻塞IO
- 支持异步请求
- 支持连接池
- 支持pipelining、LUA Scripting、Redis Sentinel、Redis Cluster
- 支持读写分离以及读负载平衡
- 可与Spring Session集成
- 文档支持充足
lettuce
优点
- 线程安全
- 支持异步请求
- 采用非阻塞IO
- 支持哨兵模式
- 支持集群