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
配置里的
- 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
详细参考
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);
}
}