本文首发于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
- 支持哨兵模式
- 支持集群
-
-
发表回复