前文http://haiziwoainixx.iteye.com/admin/blogs/2085763 测试过redis的主从配置,作为一个互联网开发技术人员,必须熟悉各种分布式部署应用方案,而缓存的分布式部署又是其中相当重要的一环,下面就来说一说redis的分布式部署方案。
一.客户端jedis的实现方案
使用jedis时可以给jedis连接池配置多个reidsserver实例,然后通过一致性哈希将数据分布到各个实例上,此种方式简单易用。
但是缺点就是当扩容时,之前的缓存相当于全部失效。
二.redis本身的实现方案
通过利用reids的主从复制,实现一主多从的部署,并且可以在从服务器进行数据备份,提供数据安全性和稳定性,但是此种方式的弊端或者说主从复制的弊端就是当向从服务器插入数据时并不会同步到主服务器,不像mysql可以互为主从来解决这个问题。也就是说可供客户端同时插入和查询的只能是主服务器,否则将存在数据部同步问题。
三.结合的解决方案
通过一+二的结合,我们可以实现N主+N从的实现方案,既可以解决数据安全性问题,也部分解决了负载均衡问题,但是仍然无法解决扩容时缓存失效的问题,对此,参考以下文章:
因为使用了一致性哈稀进行分片,那么不同的key分布到不同的Redis-Server上,当我们需要扩容时,需要增加机器到分片列表中,这时候会使得同样的key算出来落到跟原来不同的机器上,这样如果要取某一个值,会出现取不到的情况,对于这种情况,Redis的作者提出了一种名为Pre-Sharding的方式:
Pre-Sharding方法是将每一个台物理机上,运行多个不同断口的Redis实例,假如有三个物理机,每个物理机运行三个Redis实际,那么我们的分片列表中实际有9个Redis实例,当我们需要扩容时,增加一台物理机,步骤如下:
A. 在新的物理机上运行Redis-Server;
B. 该Redis-Server从属于(slaveof)分片列表中的某一Redis-Server(假设叫RedisA);
C. 等主从复制(Replication)完成后,将客户端分片列表中RedisA的IP和端口改为新物理机上Redis-Server的IP和端口;
D. 停止RedisA。
这样相当于将某一Redis-Server转移到了一台新机器上。Prd-Sharding实际上是一种在线扩容的办法,但还是很依赖Redis本身的复制功能的,如果主库快照数据文件过大,这个复制的过程也会很久,同时会给主库带来压力。所以做这个拆分的过程最好选择为业务访问低峰时段进行。
四.redis云
以上几种方式都是基于目前的redis版本给出的解决方案,redis的作者正在进行reids云版本的相关开发,期待中.
相关推荐
tomcat-redis-session-manager-master为tomcat集群分布式session分享功能,详细信息见http://blog.csdn.net/fengshizty?viewmode=list对应内容
分布式缓存-基于Redis集群解决单机Redis存在的问题。分布式缓存-基于Redis集群解决单机Redis存在的问题。分布式缓存-基于Redis集群解决单机Redis存在的问题。分布式缓存-基于Redis集群解决单机Redis存在的问题。...
tomcat-redis-session-manager-2.0.0.jar jedis-2.5.2.jar commons-pool2-2.2.jar 2.修改 conf 目录下的 context.xml 文件 host="localhost" port="6379" database="0" maxInactiveInterval="60" /> ...
用于配置 tomcat-redis-session-manager
redis-tomcat8以上集群session共享所需要的jar :tomcat-redis-session-manager-master 等必须jar包
apache-tomcat-7.0.67+nginx-1.14.0+Redis-x64-3.2.6379集群部署所需JAR包
因tomcat7使用redis共享session,其他的包存在问题,自己编译后处理通过。 该包是在https://github.com/jcoleman/tomcat-redis-session-manager 将源码编译后的包。
Redis分布式集群安装配置详细过程步骤
包括commons-pool-1.6.jar,jedis-2.0.0.jar,tomcat-redis-session-manager-1.2-tomcat-6&7.jar
redislock - 基于redis的分布式可重入锁
直接解压即可使用,亲测可用! 对比0.8.8等老版本,本版本支持redis集群!! 0.9.4版本开始官方不再提供Windows安装文件的免费下载。 官方更新0.9.5版本,, Windows10亲测可用。
Redis 是一个高性能的key-value数据库
python连接redis集群
docker-compose一键安装redis集群所需配置文件 初始化3主3从集群redis-cli --cluster create 192.168.0.224:6391 192.168.0.224:6392 192.168.0.224:6393 192.168.0.224:6394 192.168.0.224:6395 192.168.0.224:6396...
基于redis缓存的session共享使用的jar包。 tomcat集群环境下(通常是借助于nginx),利用这个session共享策略可以共享同一个session。从而保证客户端iip发生变化时(session相同),不会重新登录。
Tomcat-redis-session-manager实现Tomcat集群部署中的Session共享,其中需要使用到的一个jar包(支持Tomcat7)。此开源组件GitHub地址:https://github.com/jcoleman/tomcat-redis-session-manager
本文详细描述了Redis Cluster 的搭建过程,每一步都详细描述,之后对一些集群常见操作命令每一个都进行了实验及效果展示,一步到位
redis-cache-mybatis-redis-1.0.0-beta1.zip redis-cache-mybatis-redis-1.0.0-beta1.tar.gz Mybatis 整合 Redis 实现分布式缓存。
redis-cache-mybatis-redis-1.0.0-beta1.zip redis-cache-mybatis-redis-1.0.0-beta1.tar.gz Mybatis 整合 Redis 实现分布式缓存。
redis-cache-mybatis-redis-1.0.0-beta1.zip redis-cache-mybatis-redis-1.0.0-beta1.tar.gz Mybatis 整合 Redis 实现分布式缓存。