国产成年做视频网站,wordpress邮件注册通知,免费外贸平台有哪些,学校网站建设意见Redis集群
1、哨兵模式 哨兵可以有多个#xff0c;从服务器也可以有多个#xff0c;从服务器也可以有多个#xff0c;在Redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态#xff0c;如果master节点异常#xff0c;则会实现主从切换#x…Redis集群
1、哨兵模式 哨兵可以有多个从服务器也可以有多个从服务器也可以有多个在Redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态如果master节点异常则会实现主从切换将某一台的slave作为master哨兵的配置略微复杂并且性能和高可用性等各方面表现一般特别是主从切换的瞬间存在访问瞬断在这个瞬间无法对外提供服务的情况
2、高可用集群模式 小集群可以有多个最多1000个 1000*10万Redis集群是一个由多个主从节点群组成的分布式服务器群它具有复制、高可用、分片特性。Redis集群不需要哨兵也能完成节点移除和故障的转移功能。需要将每个节点设置成集群模式这种集群模式没有中心节点可水平扩散。Redis集群的性能和高可用性均优于之前版本的手柄模式且集群配置十分简单。
客户端如果访问第一个小集群去实现写的功能然后又访问第二个小集群想要实现读操作此时Redis集群内部就会从第二个小集群定位到第一个小集群每个集群是不一样的因为之前是对第一个小集群进行写操作所以此时要定位到第一个小集群来实现读操作否则就会出现数据不一致问题
Master至少3个为了选举
Redis集群搭建
1、首先需要在linux中安装redis
安装完毕后此时我的redis-server文件在目录/usr/local/bin下 redis-7.2.5在/usr/local/目录下 2、搭建redis
redis集群至少需要3个master节点在这里我们搭建3个master并且给每一个master再搭建一个slave节点总共是6个节点。步骤如下 1在/usr/local下创建文件夹redis-cluster 然后在其下面分别创建6个文件夹 mkdir -p /usr/local/redis-clustermkdir 8001 mkdir 8002 mkdir 8003 mkdir 8004 mkdir 8005 mkdir 8006 2将之前的redis.conf配置文件复制到 8001下 并修改相应的配置 cp /usr/local/bin/redisconfig/redis.conf /usr/local/redis-cluster/8001/ 我之前安装的时候redis.con存放在/usr/local/bin/redisconfig/redis.conf 路径中
进入到对应的redis.conf文件中修改相应配置
vi redis.conf
修改配置 daemonize yes 表示可以后台启动
port 8001分别对每个机器的端口号进行设置
bind 192.168.67.128必须要绑定当前机器的ip方便redis集群定位机器不绑定可能会出现循环查找集群节点机器的情况 我虚拟机的ip是192.i68.68.128 可以通过ifconfig命令查找当前机器的ip
dir /usr/local/redis-cluster/8001/指定数据文件的存放位置必须要指定不同的目录位置不然会丢失数据
cluster-enabled yes启动集群模式
cluster-config-file nodes-8001.conf这里800X最好和port对应上
cluster-node-timeout 5000超时时间
appendonly yes心跳检测若此时的redis集群出现问题则其心跳和其他集群的心跳停止若心跳停止超过5000则该集群将消失
3然后将修改后的redis.conf文件分别复制到各个文件夹下8002 8003 8004 8005 8006并将其中的8001改成相应的号 cp /usr/local/redis-cluster/8001/redis.conf /usr/local/redis-cluster/8002/cd ..因为此时在8001文件下cd 8002vi redis.conf进入该文件中进行修改:%s/8001/8002/g批量修改将8001全部改成8002
批量修改操作:%s/原字符串/目标字符串/g:wq保存并退出文本编辑
8003 8004 8005 8006 同样的方式进行修改
4分别启动6个redis实例然后检查是否启动成功 /usr/local/bin/redis-server /usr/local/redis-cluster/800x/redis.confps -ef | grep redis 5由于redis集群需要使用ruby命令所以我们需要安装ruby yum install rubyyum install rubygemsgem install redis
6进入到redis-7.2.5我安装的redis版本是7.2.5的src目录下执行命令创建集群
cd /usr/local/redis-7.2.5/src 创建集群
redis-cli --cluster create 192.168.67.128:8001 192.168.67.128:8002 192.168.67.128:8003 192.168.67.128:8004 192.168.67.128:8005 192.168.67.128:8006 --cluster-replicas 1 1表示总共的master/总共的slave 1 7验证集群
连接任意一个客户端即可 ./redis-cli -c-h -p-c 表示集群模式 例如 /usr/local/bin/redis-cli -c -h 192.168.67.128 -p 800x
进行验证 cluster info查看集群信息 cluster nodes查看节点列表 进行数据操作验证 此时三个master以此使用(redirected)
set name xx
set name1 yy
set name2 hh
get name1
关闭集群
/usr/local/bin/redis-cli -c -h 192.168.67.128 -p 800x shutdown java中使用redis集群 1、导入Jedis依赖 2、编写Java代码
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;import java.io.IOException;
import java.util.HashSet;
import java.util.Set;//Redis集群
public class RedisCluster {public static void main(String [] args) throws IOException {//创建6台服务器并将其放到一个hashset中SetHostAndPort JedisClusterNodenew HashSetHostAndPort();JedisClusterNode.add(new HostAndPort(192.168.67.128,8001));JedisClusterNode.add(new HostAndPort(192.168.67.128,8002));JedisClusterNode.add(new HostAndPort(192.168.67.128,8003));JedisClusterNode.add(new HostAndPort(192.168.67.128,8004));JedisClusterNode.add(new HostAndPort(192.168.67.128,8005));JedisClusterNode.add(new HostAndPort(192.168.67.128,8006));//创建一个JedisPoolConfig连接池JedisPoolConfig confignew JedisPoolConfig();config.setMaxTotal(100);//maxTotal资源池中最大的连接数config.setMaxIdle(10);//资源池允许最大空闲的连接数config.setTestOnBorrow(true);//向资源池借用连接时是否做有效性检测//redis集群的访问类JedisClusterJedisCluster jedisClusternew JedisCluster(JedisClusterNode,1000,10,config);//服务器、等待时间、重传次数、连接池//测试System.out.println(jedisCluster.set(student,Tom));System.out.println(jedisCluster.set(age,11));System.out.println(jedisCluster.get(student));System.out.println(jedisCluster.get(age));//关闭jedisCluster.close();}
}此时redis集群中就已经有了这些数据可以进行查看在linux中输入 get “student”查看结果