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的入门案例多主案例搭建分布式锁进行加锁解锁底层源码解析

REDIS10_Redission的入门案例多主案例搭建分布式锁进行加锁解锁底层源码解析

Redis_01_Redis安装与使用

Redis_06_Redis事务

Redis_04_Redis事务

Redission使用方式总结