一、Redis集群操作
1、开启Redis集群
1)执行上文中编写好的shell脚本,先将redis服务全部开启
2)执行redis01/redis-cli -h 192.168.132.128 -p 7005 -c启动01节点客户端连接集群
2、查看Redis集群节点进程
3、关闭Redis集群
1)单机中,直接cd到redis/bin下,执行redis-cli连接到服务器, 然后shutdown即可。
2)或者指定redis节点端口号shut down ,统一编写成shell脚本如下:
3)执行shell脚本,关闭redis集群
二、Redis客户端连接集群
1、自带的redis-cli命令
2、RedisManager 可视化工具
这个工具可用于连接单个redis节点,支持执行linux命令,例如在01中set了一个a,转跳到03中进行保存,进入03便可看到0号数据库下的key为a的value。另外Redis默认的是有16个数据库,从0号数据库开始,集群环境下默认操作0号数据库。可也对redis.conf对默认数据库数量进行修改
3、Jedis客户端jar
Jedis是Redis的java版本的客户端实现,封装了java操作Redis的一套实现。用于在java中对Redis进行数据操作。
1)首先引入Jedis jar包。
2)使用Jedis封装的API和对象对Redis节点进行数据操作。下面是几种连接方式的测试方法
使用单个Jedis对象创建连接
<span style="font-size:12px;"> public void single() {
// 创建一个jedis对象
Jedis jedis = new Jedis("192.168.132.128", 6379);
// 调用方法,方法名和redis的命令一样
jedis.set("key1", "jedis-test");
String string = jedis.get("key1");
System.out.println(string);
jedis.close();
}</span>
使用Jedis数据连接池创建连接
<span style="font-size:12px;"> public void Pool() {
// 创建一个jedis连接池对象
JedisPool pool = new JedisPool("192.168.132.128", 6379);
// 从连接池中获取jedis对象
Jedis jedis = pool.getResource();
String string = jedis.get("key1");
System.out.println(string);
// 注意每次使用完毕都需要关闭jedis连接,否则连接池很容易就到达最大连接数,溢出了。
jedis.close();
}</span>
连接Redis集群
<span style="font-size:12px;">public void Cluster() {
// 创建一个hashset、用于存放所有的节点信息
HashSet<HostAndPort> nodes = new HashSet<>();
nodes.add(new HostAndPort("192.168.132.128", 7001));
nodes.add(new HostAndPort("192.168.132.128", 7002));
nodes.add(new HostAndPort("192.168.132.128", 7003));
nodes.add(new HostAndPort("192.168.132.128", 7004));
nodes.add(new HostAndPort("192.168.132.128", 7005));
nodes.add(new HostAndPort("192.168.132.128", 7006));
// 创建一个集群
JedisCluster cluster = new JedisCluster(nodes);
cluster.set("key", "cluster-connection-success");
String string = cluster.get("key");
System.out.println(string);
cluster.close();
}</span>
注意:每次建立连接后处理完执行关闭连接操作,以免连接数超过最大连接数导致node 宕掉。