Redis

Redis 单机

最简配置

redis.conf

port 16000
protected-mode yes
requirepass hello
logfile "logs/16000.log"
daemonize yes
appendonly yes

Java 连接

依赖Jedis

implementation 'redis.clients:jedis:5.1.2'

这里的用户默认就是default,你也可以传null, 密码是 requirepass配置里的

  1. Redis ACL参考, 包括用户的添加 权限管理
try (JedisPooled jedis = new JedisPooled("localhost", 16000, null, "hello")) {
    String value = jedis.get("foo");
    logger.info("Value of foo is: {}", value);
} catch (Exception e) {
    logger.error("Error", e);
}

相当于

redis-cli -p 16000 -a hello

#或者
redis-cli -p 16000
AUTH hello
(AUTH defaut hello)

Redis 集群

最简配置

redis 集群至少需要3台redis进程才能组建,如下配置至少要配3份。

port 16000
protected-mode yes
requirepass hello
logfile "/logs/16000.log"
daemonize yes
appendonly yes

#Cluster
cluster-enabled yes
cluster-config-file nodes_160000.conf

组建redis cluster

redis-cli --cluster create 127.0.0.1:16000 127.0.0.1:16001 127.0.0.1:16002 --cluster-replicas 0 -a hello

如果你想要 --cluster-replicas 1 各有一个备份, 那么你至少需要6个redis进程。

redis-cli --cluster create 127.0.0.1:16000 127.0.0.1:16001 127.0.0.1:16002 127.0.0.1:16003 127.0.0.1:16004 127.0.0.1:16005 --cluster-replicas 1 -a hello

redis在组建是会自动分配哪些是备份哪些是master

在使用redis-cli连接时,你可以连其中任意一台,但需要指定 -c参数
redis-cli -c -p 16001 -a hello

详细参考

  1. create-and-use-a-redis-cluster

Java 连接

依赖Jedis

  public static void clusterReids() {
    Set<HostAndPort> nodes = new HashSet<>();
    nodes.add(new HostAndPort("localhost", 16000));
    nodes.add(new HostAndPort("localhost", 16001));
    nodes.add(new HostAndPort("localhost", 16002));

    try (JedisCluster jedis = new JedisCluster(nodes, null, "hello")) {
      String value = jedis.get("foo");
      logger.info("Value of foo is: {}", value);
      jedis.set("foo", "123");
    } catch (Exception e) {
      logger.error("Error", e);
    }
  }
posted @ 2024-09-10 11:06  开学五年级了  阅读(4)  评论(0编辑  收藏  举报