关于Redis支持的客户端列表,请参见Redis Clients。
说明 企业版(内存型)推荐使用TairJedis客户端。
redis.clients
jedis
Latest non-RC version
jar
compile
说明 最新版本,请参见Jedis。
说明 关于如何获取Redis实例的连接地址和密码,请参见如何获取连接信息。
Jedis 最新版本 Jedis 2.4.0及以下Jedis单连接(不推荐,单次超时后无法自动恢复)JedisPoolConfig config = new JedisPoolConfig(); // 最大空闲连接数,需自行评估,不超过Redis实例的最大连接数 config.setMaxIdle(200); // 最大连接数,需自行评估,不超过Redis实例的最大连接数。 config.setMaxTotal(300); config.setTestOnBorrow(false); config.setTestOnReturn(false); // 分别将host和password的值替换为实例的连接地址、密码。 String host = "r-bp10noxlhcoim2****.redis.rds.aliyuncs.com"; String passwor = ""; JedisPool pool = new JedisPool(config, host, 6379, 3000, password); Jedis jedis = null; try { jedis = pool.getResource(); /// ... do stuff here ... for example jedis.set("foo", "bar"); System.out.println(jedis.get("foo")); jedis.zadd("sose", 0, "car"); jedis.zadd("sose", 0, "bike"); System.out.println(jedis.zrange("sose", 0, -1)); } catch (Exception e) { // timeout and other error e.printStackTrace(); } finally { if (jedis != null) { jedis.close(); } } /// ... when closing your application: pool.destroy();
bar [bike, car]
警告 在使用Jedis的过程中,如果设置了一些不合理的参数或错误使用某些功能可能会引起报错,关于如何排查,请参见Jedis常见异常汇总。
TairJedis是阿里云基于Jedis开发的Redis企业版专用客户端,除了Jedis的原有功能,还支持Redis企业版数据结构模块包含的命令。
说明 关于如何获取Redis实例的连接地址和密码,请参见如何获取连接信息。
更多信息,请参见tairjedis-sdk。
通用示例企业版Tair示例
说明更多信息,请参见官方文档。
说明 常见报错与解决方法:
Cannot assign requested address
,原因分析及排查方法,请参见使用短连接访问Redis出现“Cannot assign requested address”错误。redis protocol error, got ' ' as reply type byte
,请升级您的PhpRedis客户端版本,参见GitHub issue。通用示例企业版Tair示例
说明Spring Data Redis With Jedis(推荐)Spring Data Redis With Lettuce (不推荐)
说明
org.springframework.boot
spring-boot-starter-data-redis
lettuce-core
io.lettuce
redis.clients
jedis
Latest non-RC version
更多信息,请参见Spring Data Redis。
git clone https://github.com/redis/hiredis.git
cd hiredis
make
sudo make install
通用示例企业版Tair示例
说明gcc -o example -g example.c -I /usr/local/include/hiredis -lhiredis
example r-bp10noxlhcoim2****.redis.rds.aliyuncs.com 6379 instance_id password
警告 如果您的Redis实例为集群架构或读写分离架构,且需要执行切换或选择数据库的操作(即使用多数据库功能),您必须先将cluster_compat_enable参数设置为0(即关闭原生Redis Cluster语法兼容),然后重启客户端应用,否则将提示报错: Multiple databases are not supported on this server; cannot switch to database
。具体操作,请参见设置实例参数。
通用示例企业版Tair示例
说明 redisConn = getRedisConn();
var db = redisConn.GetDatabase();
String Hash List SetSorted Set
npm install hiredis redis
通用示例企业版Tair示例
说明通用示例企业版Tair示例
说明
Lettuce支持完整Redis API的同步和异步通信使用。由于Lettuce客户端在请求多次请求超时后,不再自动重连,当云数据库Redis因故障等因素导致代理或者数据库节点发生切换时,可能出现连接超时导致无法重连。为避免此类风险,推荐您使用Jedis客户端。
说明 关于如何获取Redis实例的连接地址和密码,请参见如何获取连接信息。
云数据库Redis版支持自定义部分参数的值,不同的引擎版本和架构支持的参数有所区别,本文为您介绍各参数的详细说明。
重要 本文仅包含Redis社区版实例的参数,关于Tair(Redis企业版)实例的参数(包含内存型、持久内存型和云盘(ESSD)型)请参见Tair参数支持。
为便于阅读和内容表达,本文的表格约定使用下述注释:
说明
参数 | 说明 | 实例的大版本与架构 | |||
---|---|---|---|---|---|
6.0版本 | 5.0版本 | 4.0版本 | 2.8版本 | ||
#no_loose_audit-read-enabled | 开启或关闭读请求审计,开启后审计日志中显示读请求。可选值:
说明 Redis云盘版实例不支持设置该参数。 |
❌ |
标准 ❌ 集群 ✔️ 读写分离 ✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
#no_loose_check-whitelist-always | 开启专有网络免密后默认不检查客户端的IP是否在Redis白名单中,此时如果将该参数的值设置为yes,则白名单依然生效。可选值:
说明 Redis云盘版实例不支持设置该参数。 |
❌ |
标准️️✔️ 集群✔️ 读写分离✔️ |
标准️️✔️ 集群✔️ 读写分离✔️ |
❌ |
#no_loose_disabled-commands | 设置禁用命令,可根据业务需求禁用某些高危命令或高时间复杂度的命令,例如FLUSHALL、FLUSHDB、KEYS、HGETALL、EVAL、EVALSHA、SCRIPT等。说明
|
标准️️✔️ 集群✔️ |
标准️️✔️ 集群✔️ 读写分离✔️ |
标准️️✔️ 集群✔️ 读写分离✔️ |
标准️️✔️ 集群✔️ 读写分离✔️ |
#no_loose_sentinel-enabled | 开启或关闭哨兵(Sentinel)兼容模式,可选值:
|
标准️️✔️ 集群✔️ |
标准️️✔️ 集群✔️ 读写分离✔️ |
标准️️✔️ 集群✔️ 读写分离✔️ |
❌ |
#no_loose_ssl-enabled | 开启或关闭SSL加密连接,可选值:
说明 Redis云盘版实例不支持设置该参数。 |
❌ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
#no_loose_statistics-cmds | 本组参数为云数据库Redis可观测性能力的一部分,设置后还需要配合审计日志才会生效,统计周期为5秒/次。
|
❌ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
#no_loose_statistics-ip-enable | ❌ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
|
#no_loose_statistics-keys | ❌ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
|
#no_loose_tls-min-version | 设置实例支持的TLS最低版本,可选值:
|
❌ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
cluster_compat_enable | 开启或关闭原生Redis cluster语法兼容,可选值:
|
❌ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
max_session_processing | 单个连接允许堆积的最大请求数。代理节点转发客户端的请求给数据节点,但是未收到数据节点的回复,此时该请求即处于堆积状态。该参数主要用于限制代理节点前后端处理能力差异导致的请求堆积,避免内存上涨的问题。 |
❌ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
ptod_enabled | 是否将客户端的IP地址通过代理节点透传到数据节点,可选值:
说明 标准架构或集群架构直连模式均不涉及该参数。 |
标准❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
标准️️❌ 集群✔️ 读写分离✔️ |
❌ |
readonly_lua_route_ronode_enable | 开启或关闭只读副本的Lua执行模式,可选值:
|
❌ |
标准️️❌ 集群❌️ 读写分离✔️ |
标准️️❌ 集群❌️ 读写分离✔️ |
❌ |
read_request_only_ronode_whenrwsplit_enable | 开启或关闭只读账号请求定向转发,可选值:
|
❌ |
标准️️❌ 集群❌️ 读写分离✔️ |
标准️️❌ 集群❌️ 读写分离✔️ |
标准️️❌ 集群❌️ 读写分离✔️ |
rt_threshold_ms | 代理服务器中的慢日志阈值,单位为毫秒(ms)。如果代理服务器处理一个请求的时间超过该阈值,则会生成一条慢日志。 说明 计时方式:从代理服务器向数据节点发出请求开始,到代理服务器收到响应结束。 |
❌ |
标准️️❌ 集群✔️️️️️ 读写分离✔️ |
标准️️❌ 集群✔️️️️️ 读写分离✔️ |
标准️️❌ 集群✔️️️️️ 读写分离✔️ |
script_check_enable | 检查Lua脚本涉及的Key是否在相同slot(槽),可选值:
|
❌ |
标准️️❌ 集群✔️️️️️ 读写分离✔️ |
标准️️❌ 集群✔️️️️️ 读写分离✔️ |
标准️️❌ 集群✔️️️️️ 读写分离✔️ |
transfer_subscrible_to_psubscrible_enable | 开启或关闭SUBSCRIBE转PSUBSCRIBE功能,可选值:
|
❌ |
标准️️❌ 集群✔️️️️️ 读写分离✔️ |
标准️️❌ 集群✔️️️️️ 读写分离✔️ |
❌ |
appendonly | 开启或关闭主节点的AOF持久化功能,可选值:
|
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
client-output-buffer-limit pubsub | 限制对发布订阅客户端的输出缓冲,参数值格式为 ,默认值为33554432 8388608 60。
|
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
dynamic-hz | 开启或关闭动态hz,可选值:
|
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群❌️️️️ 读写分离❌ |
❌ | ❌ |
hash-max-ziplist-entries | 哈希对象同时满足以下两个条件时, 使用ziplist编码。
|
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
hash-max-ziplist-value | 哈希对象同时满足以下两个条件时, 使用ziplist编码。
|
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
hz | 设置Redis后台任务执行频率,例如清除过期键任务。取值范围为1~500,默认值为10,即每秒执行10次。 说明 该值越大,CPU资源消耗越多,但在过期键较多的情况下清理频率也更高,同时Redis能够更精确地处理超时。建议取值不要超过100。 |
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
lazyfree-lazy-eviction | 是否开启基于lazyfree的驱逐功能,可选值:
|
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
❌ |
lazyfree-lazy-expire | 是否开启基于lazyfree的过期Key删除功能,可选值:
|
标准️️✔️ 集群❌ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
❌ |
lazyfree-lazy-server-del | DEL命令是否基于lazyfree异步删除数据,可选值:
|
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
❌ |
lazyfree-lazy-user-del | 执行DEL命令时是否基于lazyfree异步删除数据,可选值:
|
标准️️✔️ 集群✔️️️️️ |
❌ | ❌ | ❌ |
list-compress-depth | 列表中两端不被压缩的节点个数,取值范围0~65535。
|
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
❌ |
list-max-ziplist-entries | 链表对象同时满足以下两个条件时, 使用ziplist编码。
|
❌ |
❌ | ❌ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
list-max-ziplist-value | 链表对象同时满足以下两个条件时, 使用ziplist编码。
|
❌ |
❌ | ❌ | 标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
list-max-ziplist-size |
|
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
❌ |
maxmemory-policy | 设置缓存满后Redis删除内容的策略,您可以在如下八种策略中进行选择。LRU表示最近最少使用的。LFU表示最不常用的。LRU,LFU和volatile-ttl都是使用近似随机算法实现的。
|
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
notify-keyspace-events | notify-keyspace-events的参数值可以是以下字符的任意组合,它指定了服务器该发送哪些类型的通知。
说明 输入的参数中至少包含K或E, 否则不会有任何通知被分发。 |
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
set-max-intset-entries | 当Set集合内的数据符合以下条件时,会使用intset编码。
|
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
slowlog-log-slower-than | 设置慢日志的记录阈值,即设置对执行时间大于多少微秒的操作进行记录。取值范围10000~10000000,默认值为20000。 |
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
slowlog-max-len | 慢日志最多保存记录条数,取值范围100~10000,默认值为1024。 |
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
stream-node-max-bytes | Stream中每个宏节点(Macro Node)能够占用的最大内存,取值范围:0~999,999,999,999,999。 说明 0表示无限制。 |
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群❌️️️️ 读写分离❌ |
❌ | ❌ |
stream-node-max-entries | Stream中每个宏节点中可存储条目的最大数量,取值范围:0~999,999,999,999,999。 说明 0表示无限制。 |
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群❌️️️️ 读写分离❌ |
❌ | ❌ |
timeout | 在客户端连接空闲时长达到指定值时关闭连接,取值范围:0~100,000,单位为秒。 说明 0表示不开启。 |
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
❌ |
zset-max-ziplist-entries | 排序集合对象同时满足以下两个条件时, 使用ziplist编码。
|
标准️️✔️ 集群✔️️️️️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
标准️️✔️ 集群✔️️️️️ 读写分离✔️ |
Redis cluster specification | Redis