高速缓存介绍
高速缓存利用内存保存数据,读写速度远超硬盘
高速缓存可以减少I/0操作,减少I/O压力
淘宝APP首页 : 热数据-->redis、普通数据-->mysql
Redis介绍
- Redis是Vmware开发的开源的KV型NoSQL缓存产品
- Redis具有很好的性能,最多可以提供10万次/秒的读写
- 目前新浪微博团队组建了世界上最大规模的Redis集群
Redis集群介绍
- RedisCluster:官方推荐,没有中心节点
- Codis:中间件产品,存在中心节点
- Twemproxy:中间件产品,存在中心节点
RedisCluster
- 无中心节点,客户端与redis节点直连,不需要中间代理层
- 数据可以被分片存储,每一个节点存储的数据不一样(所以需要冗余节点,备份)
- 管理方便,后续可自行增加和摘除节点
Redis主从同步
切分存储,引入冗余节点
- Rediscover集群中的数据库复制是通过主从同步来实现的
- 主节点(Master)把数据分发给从节点(Slave)
Master-->复制Slave
Redis集群高可用
- Redis集群中应该包含奇数个Master,至少应该有3个Master
- Redis集群中每个Master都应该有Slave
Redis不配置负载均衡,Spring配置好了
配置RedisCluster集群
1.安装Redis镜像
docker pull yyyyttttwwww/redis
创建容器:docker run -it -d --name r1 -p 5001:6379 --net=net2 --ip 172.19.0.2 redis bash
解除docker集群:docker swarm leave -f
docker network ls
docker network rm docker_gwbridge
创建docker network2网络:docker network create --subnet=172.19.0.0/16 net2
执行容器:docker exec -it r1 bash
2.配置Redis节点
代码语言:javascript复制/usr/redis/redis.conf
<pre spellcheck="false" class="md-fences md-end-block md-fences-with-lineno ty-contain-cm modeLoaded" lang="shell" cid="n66" mdtype="fences" style="box-sizing: border-box; font-variant-ligatures: none; overflow: visible; font-family: "JetBrains Mono"; break-inside: avoid; word-wrap: break-word; font-size: 0.9em; display: block; text-align: left; white-space: normal; background-color: rgb(238, 238, 238); position: relative !important; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; color: rgb(85, 85, 85); padding: 0.4em 1em 0.4em 0px; overflow-wrap: break-word; margin: 0px 0px 20px; line-height: 1.5em; width: inherit; background-position: initial initial; background-repeat: initial initial;"> daemonize yes # 以后台进程运行
cluster-enabled yes # 开启集群
cluster-config-file nodes.conf # 集群配置文件
cluster-node-timeout 15000 # 超时时间
appendonly yes # 开启AOF模式,日志功能,一旦宕机,自动回复</pre>
--replicas 1 参数表示为每个主节点创建一个从节点
./redis-trib.rb create --replicas 1 ip1 ip2 ip3 ip4 ip5 ip6
利用redis-trib.rb创建集群
4.创建Redis集群
代码语言:javascript复制gem install redis
apt-get install rubygems
apt-get install ruby
cd /usr/redis/cluster
mkdir -r /usr/redis/cluster
cp /usr/redis/src/redis-trib.rb /usr/redis/cluster
redis-trib是基于Ruby的Redis集群命令行工具
3.安装redis-trib.rb
创建6个相同节点
代码语言:javascript复制./redis-server ../redis.conf
cd /usr/redis/src