2020-07-08

2022-05-13 14:47:20 浏览数 (1)

高速缓存介绍

高速缓存利用内存保存数据,读写速度远超硬盘

高速缓存可以减少I/0操作,减少I/O压力

淘宝APP首页 : 热数据-->redis、普通数据-->mysql

Redis介绍

  • Redis是Vmware开发的开源的KV型NoSQL缓存产品
  • Redis具有很好的性能,最多可以提供10万次/秒的读写
  • 目前新浪微博团队组建了世界上最大规模的Redis集群

Redis集群介绍

  1. RedisCluster:官方推荐,没有中心节点
  2. Codis:中间件产品,存在中心节点
  3. 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

0 人点赞