redis centos集群搭建和java应用
1. 首先要ssh免密登录
redis集群,3台虚拟机,6个节点,每台机器2个节点一主一从。
192.168.132.154 c0
192.168.132.156 c1
192.168.132.155 c2
下载并解压文件,请到官网下载。文末有网盘下载地址。
tar -zxvf redis-5.0.4.tar.gz
安装或更新C语言环境
yum install gcc-c++
安装Redis,默认安装在当前目录下,可以使用PREFIX参数更改安装位置
make install PREFIX=/home/xiaozw/soft/java/redis
2. 修改配置文件redis.conf,3台服务器,6个节点都需要修改。
日志文件路径
logfile "/home/xiaozw/soft/tmp/redis"
Redis绑定的Ip地址
bind 192.168.132.154
bind 192.168.132.156
bind 192.168.132.155
端口(7000-7005):
port 7000
每个Redis的集群设置打开
cluster-enabled yes
daemonize yes
aof日志每一个操作都记录模式
appendonly yes
查看redis状态
ps -ef|grep redis
关闭redis
./redis-cli -h 192.168.132.154 -p 7000 shutdown
拷贝文件到其它服务器,切换当前路径到/home/xiaozw/soft/java
scp -r redis root@c1:/home/xiaozw/soft/java
3. 分别启动6个节点
./redis-server ./redis.conf
4. 安装ruby
yum install ruby
5. 将6个Redis加入一个集群
./redis-cli --cluster create 192.168.132.154:7000 192.168.132.154:7001 192.168.132.156:7002 192.168.132.156:7003 192.168.132.155:7004 192.168.132.155:7005 --cluster-replicas 1
6. java调用
/** * 配置缓存服务器ip和端口 * @return */ @Bean public JedisCluster JedisClusterFactory() { Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>(); jedisClusterNodes.add(new HostAndPort("192.168.132.154", 7000)); jedisClusterNodes.add(new HostAndPort("192.168.132.154", 7001)); jedisClusterNodes.add(new HostAndPort("192.168.132.156", 7002)); jedisClusterNodes.add(new HostAndPort("192.168.132.156", 7003)); jedisClusterNodes.add(new HostAndPort("192.168.132.155", 7004)); jedisClusterNodes.add(new HostAndPort("192.168.132.155", 7005)); JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes); return jedisCluster; }
/** * 测试写入读取缓存 */ @RequestMapping("/getCacheTest") @ResponseBody public void getCacheTest(){ redisDAO.set("myKey","hello world"); System.out.println("缓存返回:"+redisDAO.get("myKey")); }
返回:
7. 文件下载地址
链接:https://pan.baidu.com/s/1sgerqrHFWxxewXJBu8yyTg
提取码:1o8d
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端