在如今并发的环境下,对大数据量的查询采用缓存是最好不过的了,本文使用redis搭建集群
(个人喜欢redis,对memcache不感冒)
redis是3.0后增加的集群功能,非常强大
集群中应该至少有三个节点,每个节点有一备份节点。这样算下来至少需要6台服务器
考虑到有些朋友的电脑配置不是很高,跑多个虚拟机就会卡,这边放出伪分布式和分布式
(2年前的配置)
![](https://img.haomeiwen.com/i1919394/c6566839553a1e7d.png)
前提先装好一个单例情况下的redis(这里就不多说了)
需要6个redis实例
![](https://img.haomeiwen.com/i1919394/787383ed70663596.jpg)
搭建集群的步骤:
在/usr/local下 创建文件夹
![](https://img.haomeiwen.com/i1919394/f66b6a7ff9614fc2.png)
这个我是把原来的单例redis改了个名字做的
![](https://img.haomeiwen.com/i1919394/22fbba669c6bdb83.png)
![](https://img.haomeiwen.com/i1919394/ffb244587c0eebfa.png)
进入redis01/bin
删除dump文件
![](https://img.haomeiwen.com/i1919394/edfffecb62628684.png)
![](https://img.haomeiwen.com/i1919394/47a5c245f7f1fe7d.png)
修改端口
![](https://img.haomeiwen.com/i1919394/439733f235e682f9.png)
打开注释
![](https://img.haomeiwen.com/i1919394/9779b9f8de88af3e.png)
复制多份
(真实环境下只需要一个就行,然后其余5台机子重复以上操作)
![](https://img.haomeiwen.com/i1919394/9448fec868bb146d.png)
指定端口从7001到7006
这是真实环境下的
![](https://img.haomeiwen.com/i1919394/fc5d95e4803e9c7d.png)
占用率
![](https://img.haomeiwen.com/i1919394/5678f1efff03ddfe.jpg)
在redis源码文件夹下的src目录下。redis-trib.rb,这个ruby脚本
![](https://img.haomeiwen.com/i1919394/43297442fc9ff27f.png)
第四步:把redis-trib.rb文件复制到到redis-cluster目录下。
(真实环境下,只需要放在你某个节点机子上就行,他会自动遍历到其他的节点上的,我做的时候放在了01上)
![](https://img.haomeiwen.com/i1919394/57eb744091908ef9.png)
执行ruby脚本之前,需要安装ruby环境,不然装不了
yum install ruby
![](https://img.haomeiwen.com/i1919394/6a271f18ca2cf117.png)
![](https://img.haomeiwen.com/i1919394/2e984f2994deb4a4.png)
yum install rubygems
![](https://img.haomeiwen.com/i1919394/4d2b83375308e4f1.png)
![](https://img.haomeiwen.com/i1919394/7762cd24e4573101.png)
安装redis-trib.rb运行依赖的ruby的包
这个gem可以网上下载,很多
![](https://img.haomeiwen.com/i1919394/c701a7ac8c9fd7ba.png)
(真实环境下只需要在其中一台机子上运行就行了)
![](https://img.haomeiwen.com/i1919394/3764c0a391d780b9.png)
![](https://img.haomeiwen.com/i1919394/ff47303eb4ff4cb4.png)
进入各自的redis文件夹,分别启动所有的redis实例
![](https://img.haomeiwen.com/i1919394/ed1fa24155a11bb5.png)
启动成功
![](https://img.haomeiwen.com/i1919394/34faa3e088304ab0.png)
使用redis-trib.rb创建集群
不管是不是伪分布式,这只需要启动一次
![](https://img.haomeiwen.com/i1919394/6c22c59b3cb8b4d4.png)
成功~!
链接第一个节点
![](https://img.haomeiwen.com/i1919394/f7d8a6758d938db3.png)
下面演示使用jedis来读写缓存
当然加入spring中一定要使用单例
@Test
public void testCluster() throws Exception {
Set<HostAndPort> nodes = new HashSet<>();
nodes.add(new HostAndPort("192.168.1.193", 7001));
nodes.add(new HostAndPort("192.168.1.194", 7002));
nodes.add(new HostAndPort("192.168.1.195", 7003));
nodes.add(new HostAndPort("192.168.1.196", 7004));
nodes.add(new HostAndPort("192.168.1.197", 7005));
nodes.add(new HostAndPort("192.168.1.198", 7006));
JedisCluster jedisCluster = new JedisCluster(nodes);
jedisCluster.set("name", "lee");
jedisCluster.set("age", "18");
String name = jedisCluster.get("name");
String value = jedisCluster.get("age");
System.out.println(name);
System.out.println(value);
jedisCluster.close();
}
运行结果:
![](https://img.haomeiwen.com/i1919394/86d86e54bd39b623.png)
可以看到redis客户端上取数据的时候IP是不一样的
![](https://img.haomeiwen.com/i1919394/3f459f677165a53c.png)
![](https://img.haomeiwen.com/i1919394/e7517625b177a1e2.jpg)
![](https://img.haomeiwen.com/i1919394/5e86735e6772985a.png)
Java技术交流群
网友评论