public class Redis
extends java.lang.Object
| 构造器和说明 |
|---|
Redis(java.lang.String host,
int port) |
Redis(java.lang.String host,
int port,
int database) |
Redis(java.lang.String host,
int port,
java.lang.String password) |
Redis(java.lang.String host,
int port,
java.lang.String password,
int index) |
| 限定符和类型 | 方法和说明 |
|---|---|
long |
decr(java.lang.String key)
将指定键key所储存的值减去1.
|
long |
decrBy(java.lang.String key,
long decrement)
将指定键key所储存的值减去减量decrement.
|
long |
del(java.lang.String... keys)
删除给定的一个或多个key.
|
void |
destory()
销毁链接.
|
byte[] |
dump(java.lang.String key)
序列化指定的键key,并返回被序列化的值,使用
restore(String, int, byte[])命令可以将这个值反序列化为Redis键. |
java.lang.Object |
eval(java.lang.String script)
执行Lua脚本.
|
boolean |
exists(java.lang.String key)
判定指定的键是否存在。
|
long |
expire(java.lang.String key,
int seconds)
给指定键Key设置生存时间,当key过期时(生存时间为 0),它会被自动删除。
|
long |
expireAt(java.lang.String key,
long unixTime)
EXPIREAT 的作用和
expire(String, int) 类似,都用于为key设置生存时间。 |
java.lang.String |
get(java.lang.String key)
获取指定键Key所关联的字符串值.
|
redis.clients.jedis.Jedis |
getJedis()
获取Jedis访问对象.
|
long |
hdel(java.lang.String key,
java.lang.String... field)
删除指定Key的哈希表中的一个或多个键,不存在的键将被忽略
可用版本: >= 2.0.0
时间复杂度: O(N), N 为要删除的键的数量。 |
boolean |
hexists(java.lang.String key,
java.lang.String field)
判定指定Key的哈希表中是否存在指定键
可用版本: >= 2.0.0
时间复杂度: O(1) |
java.lang.String |
hget(java.lang.String key,
java.lang.String field)
获取指定Key的哈希表中指定键所对应的值。
|
java.util.Map<java.lang.String,java.lang.String> |
hgetAll(java.lang.String key)
获取指定Key的哈希表中所有的键和值。
|
long |
hincrBy(java.lang.String key,
java.lang.String field,
long value)
增加指定Key的哈希表中指定键的数值.
|
java.util.Set<java.lang.String> |
hkeys(java.lang.String key)
获取指定Key的哈希表中所有键.
|
long |
hlen(java.lang.String key)
返回指定Key的哈希表中所有键的数量。
|
java.util.List<java.lang.String> |
hmget(java.lang.String key,
java.lang.String... fields)
获取指定Key的哈希表中指定键所对应值的列表.
|
void |
hmset(java.lang.String key,
java.util.Map<java.lang.String,java.lang.String> value)
同时将多个field-value(键-值)对设置到指定Key的哈希表中。
|
java.lang.Long |
hset(java.lang.String key,
java.lang.String field,
java.lang.String value)
将指定Key的哈希表中键field的值设置为value.
|
long |
hsetnx(java.lang.String key,
java.lang.String field,
java.lang.String value)
将指定Key的哈希表中键field的值设置为value,当且仅当键field不存在。
|
java.util.List<java.lang.String> |
hvals(java.lang.String key)
获取指定Key的哈希表中所有值的集合。
|
long |
incr(java.lang.String key)
将指定键Key中储存的数字值增加1。
|
long |
incrBy(java.lang.String key,
long increment)
将 key 所储存的值加上增量 increment
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 |
java.util.Set<java.lang.String> |
keys(java.lang.String pattern)
查找所有符合给定模式pattern的key.
|
java.util.List<java.lang.String> |
mget(java.lang.String... keys)
返回一个或多个指定键Key的值集合.
|
void |
mset(java.lang.String... keysvalues)
同时设置一个或多个key-value对
如果某个给定 key已经存在,那么 MSET会用新值覆盖原来的旧值,
如果这不是你所希望的效果,请考虑使用 MSETNX命令它只会在所有给定 key都不存在的情况下进行设置操作。 |
long |
msetnx(java.lang.String... keysvalues)
同时设置一个或多个key-value对,当且仅当所有给定 key都不存在。
|
Redis |
ping() |
void |
psubscribe(redis.clients.jedis.JedisPubSub jedisPubSub,
java.lang.String... patterns)
订阅一个或多个符合给定模式的频道
每个模式以*作为匹配符,比如it*匹配所有以it开头的频道(it.news、it.blog、it.tweets等等),
news.* 匹配所有以 news.开头的频道(news.it、news.global.today等等),诸如此类。 |
void |
publish(java.lang.String channel,
java.lang.String message)
将信息message发送到指定的频道channel.
|
java.lang.String |
restore(java.lang.String key,
int ttl,
byte[] serializedValue)
反序列化给定的序列化值,并将它和给定的key关联。
|
java.lang.String |
set(java.lang.String key,
java.lang.String value)
为指定键Key设计指定值Value.
|
java.lang.String |
set(java.lang.String key,
java.lang.String value,
java.lang.String nxxx)
为指定键Key设计指定值Value.
|
java.lang.String |
set(java.lang.String key,
java.lang.String value,
java.lang.String nxxx,
java.lang.String expx,
int time)
为指定键Key设计指定值Value.
|
java.lang.String |
set(java.lang.String key,
java.lang.String value,
java.lang.String nxxx,
java.lang.String expx,
long time)
为指定键Key设计指定值Value.
|
void |
subscribe(redis.clients.jedis.JedisPubSub jedisPubSub,
java.lang.String... channels)
订阅给定的一个或多个频道的信息.
|
long |
zadd(java.lang.String key,
double score,
java.lang.String member)
将一个member元素及其score值加入到有序集key当中.
|
long |
zadd(java.lang.String key,
java.util.Map<java.lang.String,java.lang.Double> scoreMembers)
将一个或多个member元素及其score值加入到有序集key当中.
|
long |
zcard(java.lang.String key)
获取指定Key的有序集里成员数量.
|
long |
zcount(java.lang.String key,
double min,
double max)
统计指定Key的有序集中,score值在min和max之间(默认包括score值等于min或max)的成员的数量.
|
long |
zcount(java.lang.String key,
java.lang.String min,
java.lang.String max)
统计指定Key的有序集中,score值在min和max之间(默认包括score值等于min或max)的成员的数量.
|
double |
zincrby(java.lang.String key,
double increment,
java.lang.String member)
为有序集key的成员member的score值加上增量increment.
|
java.util.Set<java.lang.String> |
zrange(java.lang.String key,
long start,
long end)
返回有序集 key中,指定区间内的成员
其中成员的位置按 score 值递增(从小到大)来排序。
|
java.util.Set<redis.clients.jedis.Tuple> |
zrangeWithScores(java.lang.String key,
long start,
long end)
返回有序集 key中,指定区间内的成员
等同
zrange(String, long, long)方法,只是返回值多了一个分值 |
java.lang.Long |
zrank(java.lang.String key,
java.lang.String member)
返回有序集key中成员member的排名
其中有序集成员按score值递增(从小到大)顺序排列。
|
long |
zrem(java.lang.String key,
java.lang.String... members)
移除有序集key中的一个或多个成员,不存在的成员将被忽略
可用版本: >= 1.2.0
时间复杂度: O(M*log(N)),N为有序集的基数,M为被成功移除的成员的数量。 |
java.util.Set<redis.clients.jedis.Tuple> |
zrevrangeWithScores(java.lang.String key,
long start,
long end)
返回有序集 key中,指定区间内的成员
等同
zrevrank(String, String)方法,只是返回值多了一个分值 |
java.lang.Long |
zrevrank(java.lang.String key,
java.lang.String member)
返回有序集key中成员member的排名。
|
java.lang.Double |
zscore(java.lang.String key,
java.lang.String member)
返回有序集key中,成员member的score值
如果 member元素不是有序集 key的成员,或 key不存在,返回 null 。
|
public Redis(java.lang.String host,
int port)
public Redis(java.lang.String host,
int port,
int database)
public Redis(java.lang.String host,
int port,
java.lang.String password)
public Redis(java.lang.String host,
int port,
java.lang.String password,
int index)
public Redis ping()
public long del(java.lang.String... keys)
可用版本: >= 1.0.0
时间复杂度: O(N), N 为被删除的 key 的数量。
删除单个字符串类型的 key ,时间复杂度为O(1)。
删除单个列表、集合、有序集合或哈希表类型的 key ,时间复杂度为O(M), M 为以上数据结构内的元素数量。
不存在的 key 会被忽略。
keys - 一个或多个keypublic byte[] dump(java.lang.String key)
restore(String, int, byte[])命令可以将这个值反序列化为Redis键.
序列化生成的值有以下几个特点:
它带有 64 位的校验和,用于检测错误, RESTORE 在进行反序列化之前会先检查校验和。
值的编码格式和 RDB 文件保持一致。
RDB版本会被编码在序列化值当中,如果因为Redis的版本不同造成RDB格式不兼容,那么Redis会拒绝对这个值进行反序列化操作。
序列化的值不包括任何生存时间信息。
可用版本: >= 2.6.0
时间复杂度:
查找给定键的复杂度为O(1),对键进行序列化的复杂度为
O(N*M),其中N是构成key的Redis对象的数量,而M则是这些对象的平均大小。
如果序列化的对象是比较小的字符串,那么复杂度为 O(1) 。
key - 指定的键public java.lang.String restore(java.lang.String key,
int ttl,
byte[] serializedValue)
RESTORE在执行反序列化之前会先对序列化值的RDB版本和数据校验和进行检查,如果RDB版本不相同或者数据不完整的话,那么 RESTORE会拒绝进行反序列化,并返回一个错误。
更多信息可以参考dump(String)命令。
可用版本: >= 2.6.0
时间复杂度:
查找给定键的复杂度为 O(1),对键进行反序列化的复杂度为
O(N*M),其中N是构成key的Redis对象的数量,而M则是这些对象的平均大小。
有序集合(sorted set)的反序列化复杂度为 O(N*M*log(N)) ,因为有序集合每次插入的复杂度为 O(log(N)) 。
如果反序列化的对象是比较小的字符串,那么复杂度为 O(1) 。
key - 指定的键ttl - 以毫秒为单位为key设置生存时间;如果ttl为 0 ,那么不设置生存时间。serializedValue - 要反序列化的字节数组public boolean exists(java.lang.String key)
可用版本: >= 1.0.0
时间复杂度: O(1)
key - 指定的键public long expire(java.lang.String key,
int seconds)
更新生存时间
可以对一个已经带有生存时间的 key 执行 EXPIRE 命令,新指定的生存时间会取代旧的生存时间。
可用版本: >= 1.0.0
时间复杂度: O(1)
key - 指定键seconds - 秒public long expireAt(java.lang.String key,
long unixTime)
expire(String, int) 类似,都用于为key设置生存时间。
可用版本: >= 1.2.0
时间复杂度: O(1)
key - 指定键unixTime - UNIX时间戳public java.util.Set<java.lang.String> keys(java.lang.String pattern)
例:
KEYS * 匹配数据库中所有 key 。 KEYS h?llo 匹配 hello , hallo 和 hxllo 等。 KEYS h*llo 匹配 hllo 和 heeeeello 等。 KEYS h[ae]llo 匹配 hello和 hallo ,但不匹配 hillo 。 特殊符号用 \ 转义注意:没事不要瞎用这个方法,会死人的
可用版本: >= 1.0.0
时间复杂度: O(N), N 为数据库中 key 的数量。
pattern - 给定模式public long decr(java.lang.String key)
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
可用版本: >= 1.0.0
时间复杂度: O(1)
key - 指定键keypublic long decrBy(java.lang.String key,
long decrement)
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
可用版本: >= 1.0.0
时间复杂度: O(1)
key - 指定键keydecrement - 要减少的值public java.lang.String get(java.lang.String key)
如果key不存在那么返回特殊值null
假如key储存的值不是字符串类型,返回一个错误,因为 GET只能用于处理字符串值。
可用版本: >= 1.0.0
时间复杂度: O(1)
key - 指定键Keypublic long incr(java.lang.String key)
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
可用版本: >= 1.0.0
时间复杂度: O(1)
key - 指定键Keypublic long incrBy(java.lang.String key,
long increment)
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
可用版本: >= 1.0.0
时间复杂度: O(1)
key - 指定Keyincrement - 要增加的值public java.util.List<java.lang.String> mget(java.lang.String... keys)
如果给定的 key里面,有某个 key不存在,那么这个 key返回特殊值null。因此,该命令永不失败。
可用版本: >= 1.0.0
时间复杂度: O(N) , N 为给定 key 的数量。
keys - 指定键Keypublic void mset(java.lang.String... keysvalues)
如果某个给定 key已经存在,那么 MSET会用新值覆盖原来的旧值,
如果这不是你所希望的效果,请考虑使用 MSETNX命令它只会在所有给定 key都不存在的情况下进行设置操作。
MSET是一个原子性(atomic)操作,所有给定 key都会在同一时间内被设置
可用版本: >= 1.0.1
时间复杂度: O(N), N 为要设置的 key 数量。
总是返回 OK (因为 MSET 不可能失败)
keysvalues - key-value对public long msetnx(java.lang.String... keysvalues)
即使只有一个给定 key已存在, MSETNX也会拒绝执行所有给定key的设置操作。
MSETNX 是原子性的,因此它可以用作设置多个不同 key表示不同字段(field)的唯一性逻辑对象(unique logic
object),所有字段要么全被设置,要么全不被设置。
可用版本: >= 1.0.1
时间复杂度: O(N), N为要设置的 key的数量。
keysvalues - key-value对public java.lang.String set(java.lang.String key,
java.lang.String value)
如果key已经持有其他值, SET就覆写旧值,无视类型。
对于某个原本带有生存时间(TTL)的键来说, 当 SET 命令成功在这个键上执行时, 这个键原有的 TTL 将被清除。
可用版本: >= 1.0.0
时间复杂度: O(1)
key - 指定键Keyvalue - 指定值Valuepublic java.lang.String set(java.lang.String key,
java.lang.String value,
java.lang.String nxxx)
可用版本: >= 1.0.0
时间复杂度: O(1)
key - 指定键Keyvalue - 指定值Valuenxxx - NX|XX, NX=只在键不存在时, XX=只在键已经存在时public java.lang.String set(java.lang.String key,
java.lang.String value,
java.lang.String nxxx,
java.lang.String expx,
int time)
可用版本: >= 2.6.12
时间复杂度: O(1)
key - 指定键Keyvalue - 指定值Valuenxxx - NX|XX, NX=只在键不存在时, XX=只在键已经存在时expx - EX|PX, 过期时间: EX=秒; PX=豪秒time - 过期时间值.public java.lang.String set(java.lang.String key,
java.lang.String value,
java.lang.String nxxx,
java.lang.String expx,
long time)
可用版本: >= 2.6.12
时间复杂度: O(1)
key - 指定键Keyvalue - 指定值Valuenxxx - NX|XX, NX=只在键不存在时, XX=只在键已经存在时expx - EX|PX, 过期时间: EX=秒; PX=豪秒time - 过期时间值.public long hdel(java.lang.String key,
java.lang.String... field)
可用版本: >= 2.0.0
时间复杂度: O(N), N 为要删除的键的数量。
key - 指定Key的哈希表field - 指定要删除的键public boolean hexists(java.lang.String key,
java.lang.String field)
可用版本: >= 2.0.0
时间复杂度: O(1)
key - 指定Key的哈希表field - 指定键public java.lang.String hget(java.lang.String key,
java.lang.String field)
可用版本: >= 2.0.0
时间复杂度: O(1)
key - 指定Key的哈希表field - 指定字段public java.util.Map<java.lang.String,java.lang.String> hgetAll(java.lang.String key)
可用版本: >= 2.0.0
时间复杂度: O(N), N 为哈希表的大小。
key - 指定Key的哈希表public long hincrBy(java.lang.String key,
java.lang.String field,
long value)
可用版本: >= 2.0.0
时间复杂度: O(1)
增量也可以为负数,相当于对给定域进行减法操作。
如果 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。
如果域 field 不存在,那么在执行命令前,域的值被初始化为 0 。
对一个储存字符串值的域 field 执行 HINCRBY 命令将造成一个错误。
本操作的值被限制在 64 位(bit)有符号数字表示之内。
key - 指定Key的哈希表field - 指定键value - 要加的数值public java.util.Set<java.lang.String> hkeys(java.lang.String key)
可用版本: >= 2.0.0
时间复杂度: O(N), N 为哈希表的大小。
key - 指定Key的哈希表public long hlen(java.lang.String key)
时间复杂度: O(1)
key - 指定Key的哈希表public java.util.List<java.lang.String> hmget(java.lang.String key,
java.lang.String... fields)
可用版本: >= 2.0.0
时间复杂度: O(N), N 为给定键的数量。
注意:
因为不存在的 key被当作一个空哈希表来处理,所以对一个不存在的 key进行 HMGET操作将返回一个只带有null值的列表。
redis.hmget("not-exist", "a", "b");
out:[null, null]
key - 指定Key的哈希表fields - 指定键列表public void hmset(java.lang.String key,
java.util.Map<java.lang.String,java.lang.String> value)
可用版本: >= 2.0.0
时间复杂度: O(N), N 为 field-value 对的数量。
此命令会覆盖哈希表中已存在的键
如果 key不存在,一个空哈希表被创建并执行 HMSET操作。
key - 指定Key的哈希表value - Hash键值public java.lang.Long hset(java.lang.String key,
java.lang.String field,
java.lang.String value)
可用版本: >= 2.0.0
时间复杂度: O(1)
如果key不存在,一个新的哈希表被创建并进行HSET操作。
如果键field已经存在于哈希表中,旧值将被覆盖。
key - 指定Key的哈希表field - 键value - 值public long hsetnx(java.lang.String key,
java.lang.String field,
java.lang.String value)
可用版本: >= 2.0.0
时间复杂度: O(1)
若域 field 已经存在,该操作无效。
如果 key不存在,一个新哈希表被创建并执行HSETNX命令。
key - 指定Key的哈希表field - 键value - 值public java.util.List<java.lang.String> hvals(java.lang.String key)
可用版本: >= 2.0.0
时间复杂度: O(N), N 为哈希表的大小。
key - 指定Key的哈希表public long zadd(java.lang.String key,
double score,
java.lang.String member)
如果某 member已经是有序集的成员,那么更新这个member的score值,并通过重新插入这个member元素,来保证该
member在正确的位置上。
score 值可以是整数值或双精度浮点数。
如果key不存在,则创建一个空的有序集并执行ZADD操作。
可用版本: >= 1.2.0
时间复杂度: O(M*log(N)),N是有序集的基数,M为成功添加的新成员的数量。
key - 指定键Keyscore - 成员分数值member - 成员编码public long zadd(java.lang.String key,
java.util.Map<java.lang.String,java.lang.Double> scoreMembers)
如果某 member已经是有序集的成员,那么更新这个member的score值,并通过重新插入这个member元素,来保证该
member在正确的位置上。
score 值可以是整数值或双精度浮点数。
如果key不存在,则创建一个空的有序集并执行ZADD操作。
可用版本: >= 1.2.0
时间复杂度: O(M*log(N)),N是有序集的基数,M为成功添加的新成员的数量。
key - 指定键KeyscoreMembers - 带有分值的成员集合public long zcard(java.lang.String key)
可用版本: >= 1.2.0
时间复杂度: O(1)
key - 指定有序集Keypublic long zcount(java.lang.String key,
double min,
double max)
可用版本: >= 2.0.0
时间复杂度: O(log(N)+M),N为有序集的基数,M为值在min和max之间的元素的数量。
key - 指定有序集Keymin - 最小分值max - 最大分值public long zcount(java.lang.String key,
java.lang.String min,
java.lang.String max)
可用版本: >= 2.0.0
时间复杂度: O(log(N)+M),N为有序集的基数,M为值在min和max之间的元素的数量。
区别于上面的分值,这里的参数为String
1. -inf 和 +inf
2. 返回所有符合条件 1 < score <= 5 的成员, zcount test (1 5
3. 则返回所有符合条件 5 < score < 10 的成员, zcount test (5 (10
key - 指定有序集Keymin - 最小分值max - 最大分值public double zincrby(java.lang.String key,
double increment,
java.lang.String member)
1. 可以通过传递一个负数值increment,让score减去相应的值,
比如 ZINCRBY key -5 member,就是让member的score值减去 5 。
2. 当 key 不存在,或 member 不是 key 的成员时, ZINCRBY key increment member
等同于 ZADD key increment member 。
3. 当 key 不是有序集类型时,返回一个错误。
4. score 值可以是整数值或双精度浮点数。
可用版本: >= 1.2.0
时间复杂度: O(log(N))
key - 有序集keyincrement - 要增加的分值member - 成员public java.util.Set<java.lang.String> zrange(java.lang.String key,
long start,
long end)
其中成员的位置按 score 值递增(从小到大)来排序。
具有相同 score 值的成员按字典序(lexicographical order )来排列。
如果你需要成员按 score 值递减(从大到小)来排列,请使用 ZREVRANGE 命令。
下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。
你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。
可用版本: >= 1.2.0
时间复杂度: O(log(N)+M), N 为有序集的基数,而 M 为结果集的基数。
key - 有序集keystart - 开始下标end - 结束下标public java.util.Set<redis.clients.jedis.Tuple> zrangeWithScores(java.lang.String key,
long start,
long end)
等同zrange(String, long, long)方法,只是返回值多了一个分值
key - 有序集keystart - 开始下标end - 结束下标public java.lang.Long zrank(java.lang.String key,
java.lang.String member)
其中有序集成员按score值递增(从小到大)顺序排列。
排名以 0 为底,也就是说, score 值最小的成员排名为 0
使用 ZREVRANK 命令可以获得成员按 score 值递减(从大到小)排列的排名
可用版本: >= 2.0.0
时间复杂度: O(log(N))
key - 有序集keymember - 成员public long zrem(java.lang.String key,
java.lang.String... members)
可用版本: >= 1.2.0
时间复杂度: O(M*log(N)),N为有序集的基数,M为被成功移除的成员的数量。
key - 有序集keymembers - 成员列表public java.lang.Long zrevrank(java.lang.String key,
java.lang.String member)
其中有序集成员按 score值递减(从大到小)排序。
排名以 0 为底,也就是说, score 值最大的成员排名为 0 。
使用 ZRANK 命令可以获得成员按 score 值递增(从小到大)排列的排名。
可用版本: >= 2.0.0
时间复杂度: O(log(N))
key - 有序集keymember - 成员public java.util.Set<redis.clients.jedis.Tuple> zrevrangeWithScores(java.lang.String key,
long start,
long end)
等同zrevrank(String, String)方法,只是返回值多了一个分值
key - 有序集keystart - 开始下标end - 结束下标public java.lang.Double zscore(java.lang.String key,
java.lang.String member)
如果 member元素不是有序集 key的成员,或 key不存在,返回 null 。
可用版本: >= 1.2.0
时间复杂度: O(1)
key - 有序集keymember - 成员public void psubscribe(redis.clients.jedis.JedisPubSub jedisPubSub,
java.lang.String... patterns)
每个模式以*作为匹配符,比如it*匹配所有以it开头的频道(it.news、it.blog、it.tweets等等),
news.* 匹配所有以 news.开头的频道(news.it、news.global.today等等),诸如此类。
可用版本: >= 2.0.0
时间复杂度: O(N), N是订阅的模式的数量。
jedisPubSub - 订阅处理接口patterns - 给定模式public void publish(java.lang.String channel,
java.lang.String message)
可用版本: >= 2.0.0
时间复杂度: O(N+M),其中N是频道channel的订阅者数量,而M则是使用模式订阅(subscribed patterns)的客户端的数量
channel - 频道message - 消息public void subscribe(redis.clients.jedis.JedisPubSub jedisPubSub,
java.lang.String... channels)
可用版本: >= 2.0.0
时间复杂度: O(N),其中 N 是订阅的频道的数量
jedisPubSub - 订阅处理接口channels - 频道public java.lang.Object eval(java.lang.String script)
脚本具备原子性
可用版本: >= 2.6.0
script - 脚本public void destory()
public redis.clients.jedis.Jedis getJedis()
try (Jedis jedis = redis.getJedis()) {
jedis.doSomething();
}