Redis_24_Redission的使用
Posted 毛奇志
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis_24_Redission的使用相关的知识,希望对你有一定的参考价值。
文章目录
一、前言
redis单机版 192.168.100.141
redisCluster集群 192.168.100.138 六个端口
redisSentinel 集群
192.168.100.139
192.168.100.140
二、单机Redis
关闭防火墙 systemctl stop firewalld
启动单机版redis ./src/redis-server redis.conf
执行java程序,完成存取
public class SingleTest
public static void main(String[] args)
Config config = new Config();
config.setCodec(new org.redisson.client.codec.StringCodec());
//指定使用单节点部署方式
config.useSingleServer().setAddress("redis://192.168.100.141:6379");
RedissonClient redisson = Redisson.create(config);
//首先获取redis中的key-value对象,key不存在没关系
RBucket<String> keyObject = redisson.getBucket("redisson-single-key");
//如果key存在,就设置key的值为新值value
//如果key不存在,就设置key的值为value
keyObject.set("value");
System.out.println(keyObject.get());
//最后关闭RedissonClient
redisson.shutdown();
三、Redis分布式锁
public class LockTest
private static RedissonClient redissonClient;
static
Config config=new Config();
config.useSingleServer().setAddress("redis://192.168.100.141:6379");
redissonClient= Redisson.create(config);
public static void main(String[] args) throws InterruptedException
RLock rLock=redissonClient.getLock("updateAccount");
// 最多等待100秒、上锁10s以后解锁
if(rLock.tryLock(100,10, TimeUnit.SECONDS))
System.out.println("获取锁成功");
Thread.sleep(20000);
rLock.unlock();
System.out.println("解锁成功");
redissonClient.shutdown();
四、Sentinel哨兵
步骤1:两个机器上都关闭防火墙
步骤2:两个机器都启动 redis-server 和 redis-sentinel
步骤3:启动之后,info replication 发现主从结构搭建起来了
步骤4:运行java程序(无需连接redis 6379端口集群,直接连接sentinel 26379端口集群)
步骤5:java程序运行完成后,机器上数据确实存入了
五、RedisCluster三主三从集群
找到 192.168.100.138 机器,之前布置好的redisCluster三注三从集群,执行 ps -ef|grep redis 发现没有运行起来,所以直接将六个都启动起来,如下:
cd /usr/local/soft/redis-6.0.9/
./src/redis-server redis-cluster/7291/redis.conf
./src/redis-server redis-cluster/7292/redis.conf
./src/redis-server redis-cluster/7293/redis.conf
./src/redis-server redis-cluster/7294/redis.conf
./src/redis-server redis-cluster/7295/redis.conf
./src/redis-server redis-cluster/7296/redis.conf
随便进入一个 ./redis-cli -p 7291
,执行 cluster nodes 命令,只要能够看到集群的各个节点,就说明集群已经起来了,如下:
之前搭建好 redisCluster 三主三从的机器,关机重启之后,只需要启动六个 redis 就好了,不需要重新执行
redis-cli --cluster create
命令
执行java程序
public class ClusterTest
public static void main(String[] args)
//创建配置
Config config = new Config();
config.setCodec(new org.redisson.client.codec.StringCodec());
//指定使用集群部署方式
config.useClusterServers()
// 集群状态扫描间隔时间,单位是毫秒
.setScanInterval(2000)
//cluster方式至少6个节点(3主3从,3主做sharding,3从用来保证主宕机后可以高可用)
.addNodeAddress("redis://192.168.100.138:7291" )
.addNodeAddress("redis://192.168.100.138:7292")
.addNodeAddress("redis://192.168.100.138:7293")
.addNodeAddress("redis://192.168.100.138:7294")
.addNodeAddress("redis://192.168.100.138:7295")
.addNodeAddress("redis://192.168.100.138:7296");
RedissonClient redisson = Redisson.create(config);
//首先获取redis中的key-value对象,key不存在没关系
RBucket<String> keyObject = redisson.getBucket("redisson-cluster-key");
//如果key存在,就设置key的值为新值value
//如果key不存在,就设置key的值为value
keyObject.set("value");
System.out.println(keyObject.get());
//最后关闭RedissonClient
redisson.shutdown();
机器中也有了(注意需要关闭防火墙,否则java程序连不上)
六、尾声
redission的操作,如下:
1、单机Redis
2、Redis分布式锁
3、Sentinel哨兵
4、RedisCluster三主三从集群
完成了。
以上是关于Redis_24_Redission的使用的主要内容,如果未能解决你的问题,请参考以下文章
REDIS10_Redission的入门案例多主案例搭建分布式锁进行加锁解锁底层源码解析