欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Redis【有与无】【Lettuce】L1.入门

程序员文章站 2022-05-01 08:02:33
...

本文章基于Redis 6.0.9版本,Lettuce 6.0.1.RELEASE版本

目录

1.入门

1.1.获取依赖包

2.开始编码

3.使用单独的Redis

4.带SSL的单独的Redis

5.Redis Sentinel

6.Redis Cluster

7.连接到ElastiCache主节点

8.使用主节点/复制节点连接到ElastiCache

9.连接到Azure Redis群集

10.与Spring一起使用Lettuce


1.入门

1.1.获取依赖包

[对于Maven用户]

将这些行添加到文件pom.xml中:

<dependency>
    <groupId>io.lettuce</groupId>
    <artifactId>lettuce-core</artifactId>
    <version>6.0.1.RELEASE</version>
</dependency>

[对于Ivy用户]

将这些行添加到文件ivy.xml中:

<ivy-module>
  <dependencies>
    <dependency org="io.lettuce" name="lettuce-core" rev="6.0.1.RELEASE"/>
  </dependencies>
</ivy-module>

[对于Gradle用户]

将这些行添加到文件build.gradle中:

dependencies {
  compile 'io.lettuce:lettuce-core:6.0.1.RELEASE
}

[下载release]

 https://github.com/lettuce-io/lettuce-core/releases

2.开始编码

导入所需的类:

import io.lettuce.core.*;

现在,编写你的代码:

RedisClient redisClient = RedisClient.create("redis://[email protected]:6379/0");
StatefulRedisConnection<String, String> connection = redisClient.connect();
RedisCommands<String, String> syncCommands = connection.sync();

syncCommands.set("key", "Hello, Redis!");

connection.close();
redisClient.shutdown();

完成

3.使用单独的Redis

package io.lettuce.examples;

import io.lettuce.core.RedisClient;
import io.lettuce.core.api.StatefulRedisConnection;

public class ConnectToRedis {

    public static void main(String[] args) {

        // Syntax: redis://[[email protected]]host[:port][/databaseNumber]
        // Syntax: redis://[username:[email protected]]host[:port][/databaseNumber]
        RedisClient redisClient = RedisClient.create("redis://[email protected]:6379/0");
        StatefulRedisConnection<String, String> connection = redisClient.connect();

        System.out.println("Connected to Redis");

        connection.close();
        redisClient.shutdown();
    }
}

4.带SSL的单独的Redis

package io.lettuce.examples;

import io.lettuce.core.RedisClient;
import io.lettuce.core.api.StatefulRedisConnection;

public class ConnectToRedisSSL {

    public static void main(String[] args) {

        // Syntax: rediss://[[email protected]]host[:port][/databaseNumber]
        // Adopt the port to the stunnel port in front of your Redis instance
        RedisClient redisClient = RedisClient.create("rediss://[email protected]:6443/0");

        StatefulRedisConnection<String, String> connection = redisClient.connect();

        System.out.println("Connected to Redis using SSL");

        connection.close();
        redisClient.shutdown();
    }
}

5.Redis Sentinel

package io.lettuce.examples;

import io.lettuce.core.RedisClient;
import io.lettuce.core.api.StatefulRedisConnection;

public class ConnectToRedisUsingRedisSentinel {

    public static void main(String[] args) {

        // Syntax: redis-sentinel://[[email protected]]host[:port][,host2[:port2]][/databaseNumber]#sentinelMasterId
        RedisClient redisClient = RedisClient.create("redis-sentinel://localhost:26379,localhost:26380/0#mymaster");

        StatefulRedisConnection<String, String> connection = redisClient.connect();

        System.out.println("Connected to Redis using Redis Sentinel");

        connection.close();
        redisClient.shutdown();
    }
}

6.Redis Cluster

package io.lettuce.examples;

import io.lettuce.core.cluster.RedisClusterClient;
import io.lettuce.core.cluster.api.StatefulRedisClusterConnection;

public class ConnectToRedisCluster {

    public static void main(String[] args) {

        // Syntax: redis://[[email protected]]host[:port]
        // Syntax: redis://[username:[email protected]]host[:port]
        RedisClusterClient redisClient = RedisClusterClient.create("redis://[email protected]:7379");

        StatefulRedisClusterConnection<String, String> connection = redisClient.connect();

        System.out.println("Connected to Redis");

        connection.close();
        redisClient.shutdown();
    }
}

7.连接到ElastiCache主节点

package io.lettuce.examples;

import io.lettuce.core.cluster.RedisClusterClient;
import io.lettuce.core.cluster.api.StatefulRedisClusterConnection;

public class ConnectToRedisCluster {

    public static void main(String[] args) {

        // Syntax: redis://[[email protected]]host[:port]
        // Syntax: redis://[username:[email protected]]host[:port]
        RedisClusterClient redisClient = RedisClusterClient.create("redis://[email protected]:7379");

        StatefulRedisClusterConnection<String, String> connection = redisClient.connect();

        System.out.println("Connected to Redis");

        connection.close();
        redisClient.shutdown();
    }
}

8.使用主节点/复制节点连接到ElastiCache

package io.lettuce.examples;

import java.util.Arrays;
import java.util.List;

import io.lettuce.core.ReadFrom;
import io.lettuce.core.RedisClient;
import io.lettuce.core.RedisURI;
import io.lettuce.core.codec.StringCodec;
import io.lettuce.core.masterreplica.MasterReplica;
import io.lettuce.core.masterreplica.StatefulRedisMasterReplicaConnection;

public class ConnectToMasterSlaveUsingElastiCacheCluster {

    public static void main(String[] args) {

        // Syntax: redis://[[email protected]]host[:port][/databaseNumber]
        RedisClient redisClient = RedisClient.create();

        List<RedisURI> nodes = Arrays.asList(RedisURI.create("redis://host1"), RedisURI.create("redis://host2"),
                RedisURI.create("redis://host3"));

        StatefulRedisMasterReplicaConnection<String, String> connection = MasterReplica.connect(redisClient, StringCodec.UTF8,
                nodes);
        connection.setReadFrom(ReadFrom.UPSTREAM_PREFERRED);

        System.out.println("Connected to Redis");

        connection.close();
        redisClient.shutdown();
    }
}

9.连接到Azure Redis群集

package io.lettuce.examples;

import io.lettuce.core.RedisURI;
import io.lettuce.core.cluster.RedisClusterClient;
import io.lettuce.core.cluster.api.StatefulRedisClusterConnection;

public class ConnectToRedisClusterSSL {

    public static void main(String[] args) {

        // Syntax: rediss://[[email protected]]host[:port]
        RedisURI redisURI = RedisURI.create("rediss://[email protected]:7379");
        redisURI.setVerifyPeer(false); // depending on your setup, you might want to disable peer verification

        RedisClusterClient redisClient = RedisClusterClient.create(redisURI);
        StatefulRedisClusterConnection<String, String> connection = redisClient.connect();

        System.out.println("Connected to Redis");

        connection.close();
        redisClient.shutdown();
    }
}

10.与Spring一起使用Lettuce

@Configuration
class AppConfig {

  @Bean
  public LettuceConnectionFactory redisConnectionFactory() {

    return new LettuceConnectionFactory(new RedisStandaloneConfiguration("server", 6379));
  }
}