redis 集群部署
java -redis 集成
jedis client调研
?lettuce 调研? (netty 多线程客户端)
jedistemplate? (spring-data-redis)? ?jedistemplate 是对 jedisconnection 的一个抽象封装, 1.8+的版本使用 luttuce 进行 jedis 连接封装
redisson? (alibaba 等很多大公司再用)
Redisson - distributed Java objects and services (Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Executor service, Tomcat Session Manager, Scheduler service, JCache API) on top of Redis server. State of the Art Redis client
redis 集群测试
可能遇到的问题
- 在现有 redis 不关的情况下,的数据迁移和数据集群分片问题
- 现有 javar-redis 连接池的改造 pool template?
- 多节点的配置问题 (动态添加节点的java热更新问题,)
说明
redis 集群主流架构方案
- nginx+redis master+work
- client+proxy+redis cluster
- jedistemplate? jedispool
mset/mget 解决方案
商用redis 集群架构
??
优化方案
监控
中间件对比
性能测试
集群搭建和调研过程中遇到的问题
- redis-trib.rb 在创建集群的过程中如果不使用 create --replication 1 而是 直接使用 create? 那么都是主节点,也就是说集群可以没有从节点
- redisson 会根据 cluster nodes 的返回结果,使用 map 设置 cluster node
- redission 分为 clusterserver, replicationserver,mastersalveserver? 模式.不同的模式对应不同的 redis 集群架构
- redission 中的 map-reduce 在 redisson? 3.9.0 版本中存在线程 await 的状况
- redission 在进行编译官方 github 的 源代码的时候,出现在-- realase help 1 的错误的解决方案是 将 build 中将 release 标签注释掉
- redisson 默认使用 json 设置字符串格式,但是可以通过 codsec 进行更改 decode 和 encode 格式
- redisson 中使用 batch 命令进行, mset 的操作.
- redis-trib.rb 在搭建集群的过程中,即使在同一台机器上也要使用 ip 地址+port 不是使用 127.0.0.1,这样子方便器群迁移
- redis 可以在运行中设置 config set protect no 开启 允许远程连接
- vim 在 mac 上在 user 目录下没有 .vimrc 这个文件
- vim 在 mac 上默认是 readonly
- io.netty.util.internal.logging.InternalLoggerFactory - Using SLF4J as the default logging framework? ?netty 默认的日志框架是 slf4j ,只有在 pom 文件中引入 slf4j 的包才能在控制台打印日志
- redisson 和 lettuce 默认都使用了 pool, 默认建立5个连接
- redisson 和 lettuce 都是使用 cluster nodes 进行集群探活的
|