public class JedisTemplate extends Object implements Serializable
Modifier and Type | Class and Description |
---|---|
class |
JedisTemplate.Pair<K,V>
键值对
|
class |
JedisTemplate.PairEx<K,V,E> |
Modifier and Type | Method and Description |
---|---|
Long |
addWithSortedSet(String key,
double score,
String member)
将一个 member 元素及其 score 值加入到有序集 key 当中。
|
Long |
addWithSortedSet(String key,
Map<String,Double> scoreMembers)
将多个 member 元素及其 score 值加入到有序集 key 当中。
|
Map<String,List<String>> |
batchGetAllList(List<String> keys)
一次获得多个链表的数据
|
List<String> |
batchGetString(String[] keys)
|
List<Map<String,String>> |
batchHashGetAll(String... keys)
|
Map<String,Map<String,String>> |
batchHashGetAllForMap(String... keys)
批量的
hashMultipleGet(String, String...) ,与batchHashGetAll(String...) 不同的是,返回值为Map类型 |
List<List<String>> |
batchHashMultipleGet(List<JedisTemplate.Pair<String,String[]>> pairs)
批量的
hashMultipleGet(String, String...) ,在管道中执行 |
List<Object> |
batchHashMultipleSet(List<JedisTemplate.Pair<String,Map<String,String>>> pairs)
批量的
hashMultipleSet(String, Map) ,在管道中执行 |
List<Object> |
batchHashMultipleSet(Map<String,Map<String,String>> data)
批量的
hashMultipleSet(String, Map) ,在管道中执行 |
void |
batchListPushTail(String key,
String[] values,
boolean delOld)
批量的
listPushTail(String, String...) ,以锁的方式实现 |
void |
batchSetExpire(List<JedisTemplate.PairEx<String,Void,Integer>> pairDatas)
批量更新key的过期时间
|
List<Object> |
batchSetString(List<JedisTemplate.Pair<String,String>> pairs)
|
List<Object> |
batchSetStringEx(List<JedisTemplate.PairEx<String,String,Integer>> pairs)
|
void |
close(redis.clients.jedis.Jedis jedis) |
long |
decr(String key,
long increment) |
Long |
delKey(String key)
删除
|
Long |
delKeys(String[] keys)
删除
|
long |
delKeysLike(String likeKey)
删除模糊匹配的key
|
Long |
expire(String key,
int expire)
为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。
在 Redis 中,带有生存时间的 key 被称为『可挥发』(volatile)的。
|
<T> T |
get(String key,
Class<T> clazz) |
redis.clients.jedis.JedisPool |
getDefaultPool() |
redis.clients.jedis.Jedis |
getJedis() |
redis.clients.jedis.Jedis |
getSingletonJedis() |
String |
getString(String key)
返回 key 所关联的字符串值。如果 key 不存在那么返回特殊值 nil 。
假如 key 储存的值不是字符串类型,返回一个错误,因为 getString 只能用于处理字符串值。
时间复杂度: O(1)
|
Long |
hashDel(String key,
String[] fields)
删除哈希表 key 中给定域 fields 的值。
时间复杂度:O(fields)
|
String |
hashGet(String key,
String field)
返回哈希表 key 中给定域 field 的值。
时间复杂度:O(1)
|
String |
hashGet(String key,
String field,
int expire)
返回哈希表 key 中给定域 field 的值。 如果哈希表 key 存在,同时设置这个 key 的生存时间
|
Map<String,String> |
hashGetAll(String key)
返回哈希表 key 中,所有的域和值。在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大小的两倍。
时间复杂度: O(N)
|
Map<String,String> |
hashGetAll(String key,
int expire)
返回哈希表 key 中,所有的域和值。在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大小的两倍。
同时设置这个 key 的生存时间
|
List<String> |
hashMultipleGet(String key,
int expire,
String... fields)
返回哈希表 key 中,一个或多个给定域的值。如果给定的域不存在于哈希表,那么返回一个 nil 值。
同时设置这个 key 的生存时间
|
List<String> |
hashMultipleGet(String key,
String... fields)
返回哈希表 key 中,一个或多个给定域的值。如果给定的域不存在于哈希表,那么返回一个 nil 值。
时间复杂度: O(N) (N为fields的数量)
|
String |
hashMultipleSet(String key,
Map<String,String> hash)
同时将多个 field-value (域-值)对设置到哈希表 key 中。
时间复杂度: O(N) (N为fields的数量)
|
String |
hashMultipleSet(String key,
Map<String,String> hash,
int expire)
同时将多个 field-value (域-值)对设置到哈希表 key 中。同时设置这个 key 的生存时间
|
Long |
hashSet(String key,
String field,
String value)
将哈希表 key 中的域 field 的值设为 value 。
如果 key 不存在,一个新的哈希表被创建并进行 hashSet 操作。
如果域 field 已经存在于哈希表中,旧值将被覆盖。
时间复杂度: O(1)
|
Long |
hashSet(String key,
String field,
String value,
int expire)
将哈希表 key 中的域 field 的值设为 value 。
如果 key 不存在,一个新的哈希表被创建并进行 hashSet 操作。
如果域 field 已经存在于哈希表中,旧值将被覆盖。
|
long |
incr(String key,
long increment) |
Long |
insertListIfNotExists(String key,
String[] values)
在key对应list的尾部部添加字符串元素,如果key存在,什么也不做
|
Set<String> |
keys(String likeKey)
模糊获取所有的key
|
List<String> |
listGetAll(String key)
返回list所有元素,下标从0开始,负值表示从后面计算,-1表示倒数第一个元素,key不存在返回空列表
|
Long |
listPushHead(String key,
String value)
将一个或多个值 value 插入到列表 key 的表头
|
Long |
listPushHeadAndTrim(String key,
String value,
long size)
将一个或多个值 value 插入到列表 key 的表头, 当列表大于指定长度是就对列表进行修剪(trim)
|
Long |
listPushTail(String key,
String... values)
将一个或多个值 value 插入到列表 key 的表尾(最右边)。
|
List<String> |
listRange(String key,
long beginIndex,
long endIndex)
返回指定区间内的元素,下标从0开始,负值表示从后面计算,-1表示倒数第一个元素,key不存在返回空列表
|
Long |
listRemove(String key,
int count,
String value)
从集合中删除值为value的指定元素;
|
long |
makeId(String key)
一个跨jvm的id生成器,利用了redis原子性操作的特点
|
<K,V> JedisTemplate.Pair<K,V> |
makePair(K key,
V value)
构造Pair键值对
|
<K,V,E> JedisTemplate.PairEx<K,V,E> |
makePairEx(K key,
V value,
E expire)
构造Pair键值对
|
static JedisTemplate |
me() |
Long |
publish(String channel,
String message)
将信息 message 发送到指定的频道 channel。
时间复杂度:O(N+M),其中 N 是频道 channel 的订阅者数量,而 M 则是使用模式订阅(subscribed patterns)的客户端的数量。
|
void |
publishAll(String channel,
List<String> messages)
将信息 message 发送到指定的频道 channel。
时间复杂度:O(N+M),其中 N 是频道 channel 的订阅者数量,而 M 则是使用模式订阅(subscribed patterns)的客户端的数量。
|
Set<String> |
revrangeByScoreWithSortedSet(String key,
double max,
double min)
返回有序集 key 中, score 值介于 max 和 min 之间(默认包括等于 max 或 min )的所有的成员。
有序集成员按 score 值递减(从大到小)的次序排列。
|
Object |
set(String key,
Object value) |
Object |
set(String key,
Object value,
int expire) |
String |
setString(String key,
String value)
将字符串值 value 关联到 key 。
如果 key 已经持有其他值, setString 就覆写旧值,无视类型。
对于某个原本带有生存时间(TTL)的键来说, 当 setString 成功在这个键上执行时, 这个键原有的 TTL 将被清除。
时间复杂度:O(1)
|
String |
setString(String key,
String value,
int expire)
将值 value 关联到 key ,并将 key 的生存时间设为 expire (以秒为单位)。
如果 key 已经存在, 将覆写旧值。
类似于以下两个命令:
SET key value
EXPIRE key expire # 设置生存时间
不同之处是这个方法是一个原子性(atomic)操作,关联值和设置生存时间两个动作会在同一时间内完成,在 Redis 用作缓存时,非常实用。
时间复杂度:O(1)
|
boolean |
setString2Boolean(String key,
String value,
int expire) |
Long |
setStringIfNotExists(String key,
String value)
将 key 的值设为 value ,当且仅当 key 不存在。若给定的 key 已经存在,则 setStringIfNotExists 不做任何动作。
时间复杂度:O(1)
|
boolean |
setStringIfNotExists(String key,
String value,
int timeout) |
Set<String> |
sorSetRangeByScore(String key,
double min,
double max)
根据Score获取集合区间数据;
|
Set<String> |
sorSetRangeByScore(String key,
double min,
double max,
int offset,
int count)
根据Score获取集合区间数据;
|
Long |
sortSetPush(String key,
double score,
String value)
往有序集合sortSet中添加数据;
|
void |
subscribe(redis.clients.jedis.JedisPubSub jedisPubSub,
String channel)
订阅给定的一个频道的信息。
|
void |
unSubscribe(redis.clients.jedis.JedisPubSub jedisPubSub)
取消订阅
|
Object |
updateListInTransaction(String key,
List<String> values)
同
batchListPushTail(String, String[], boolean) ,不同的是利用redis的事务特性来实现 |
public static JedisTemplate me() throws Exception
Exception
public redis.clients.jedis.JedisPool getDefaultPool()
public redis.clients.jedis.Jedis getSingletonJedis()
public redis.clients.jedis.Jedis getJedis()
public void close(redis.clients.jedis.Jedis jedis)
public long delKeysLike(String likeKey)
likeKey
- 模糊匹配的keypublic Long expire(String key, int expire)
key
- keyexpire
- 生命周期,单位为秒public long makeId(String key)
key
- id的keypublic long decr(String key, long increment)
public long incr(String key, long increment)
public String setString(String key, String value)
key
- keyvalue
- string valuepublic String setString(String key, String value, int expire)
key
- keyvalue
- string valueexpire
- 生命周期public Long setStringIfNotExists(String key, String value)
key
- keyvalue
- string valuepublic String getString(String key)
key
- keypublic List<Object> batchSetString(List<JedisTemplate.Pair<String,String>> pairs)
pairs
- 键值对数组{数组第一个元素为key,第二个元素为value}public List<Object> batchSetStringEx(List<JedisTemplate.PairEx<String,String,Integer>> pairs)
pairs
- 键值对数组{数组第一个元素为key,第二个元素为value}public List<String> batchGetString(String[] keys)
keys
- key数组public Long hashSet(String key, String field, String value)
key
- keyfield
- 域value
- string valuepublic Long hashSet(String key, String field, String value, int expire)
key
- keyfield
- 域value
- string valueexpire
- 生命周期,单位为秒public String hashGet(String key, String field)
key
- keyfield
- 域public String hashGet(String key, String field, int expire)
key
- keyfield
- 域expire
- 生命周期,单位为秒public String hashMultipleSet(String key, Map<String,String> hash)
key
- keyhash
- field-value的mappublic String hashMultipleSet(String key, Map<String,String> hash, int expire)
key
- keyhash
- field-value的mapexpire
- 生命周期,单位为秒public List<String> hashMultipleGet(String key, String... fields)
key
- keyfields
- field的数组public List<String> hashMultipleGet(String key, int expire, String... fields)
key
- keyfields
- field的数组expire
- 生命周期,单位为秒public List<Object> batchHashMultipleSet(List<JedisTemplate.Pair<String,Map<String,String>>> pairs)
hashMultipleSet(String, Map)
,在管道中执行pairs
- 多个hash的多个fieldpublic List<Object> batchHashMultipleSet(Map<String,Map<String,String>> data)
hashMultipleSet(String, Map)
,在管道中执行data
- Mappublic List<List<String>> batchHashMultipleGet(List<JedisTemplate.Pair<String,String[]>> pairs)
hashMultipleGet(String, String...)
,在管道中执行pairs
- 多个hash的多个fieldpublic Map<String,String> hashGetAll(String key)
key
- keypublic void batchSetExpire(List<JedisTemplate.PairEx<String,Void,Integer>> pairDatas)
pairDatas
- public Map<String,String> hashGetAll(String key, int expire)
key
- keyexpire
- 生命周期,单位为秒public List<Map<String,String>> batchHashGetAll(String... keys)
keys
- key的数组public Map<String,Map<String,String>> batchHashGetAllForMap(String... keys)
hashMultipleGet(String, String...)
,与batchHashGetAll(String...)
不同的是,返回值为Map类型keys
- key的数组public Long hashDel(String key, String[] fields)
key
- 哈希表 keyfields
- 哈希表的fieldpublic Long listPushTail(String key, String... values)
key
- keyvalues
- value的数组public Long listPushHead(String key, String value)
key
- keyvalue
- string valuepublic Long listRemove(String key, int count, String value)
key
- count
- value
- public Long listPushHeadAndTrim(String key, String value, long size)
key
- keyvalue
- string valuesize
- 链表超过这个长度就修剪元素public void batchListPushTail(String key, String[] values, boolean delOld)
listPushTail(String, String...)
,以锁的方式实现key
- keyvalues
- value的数组delOld
- 如果key存在,是否删除它。true 删除;false: 不删除,只是在行尾追加public Object updateListInTransaction(String key, List<String> values)
batchListPushTail(String, String[], boolean)
,不同的是利用redis的事务特性来实现key
- keyvalues
- value的数组public Long insertListIfNotExists(String key, String[] values)
key
- keyvalues
- value的数组public List<String> listGetAll(String key)
key
- keypublic List<String> listRange(String key, long beginIndex, long endIndex)
key
- keybeginIndex
- 下标开始索引(包含)endIndex
- 下标结束索引(不包含)public Map<String,List<String>> batchGetAllList(List<String> keys)
keys
- key的数组public Long sortSetPush(String key, double score, String value)
key
- score要排序的值
- value
- public Set<String> sorSetRangeByScore(String key, double min, double max)
key
- min
- score区间最小值max
- scroe区间最大值public Set<String> sorSetRangeByScore(String key, double min, double max, int offset, int count)
key
- min
- score区间最小值max
- scroe区间最大值offet
- 偏移量(类似LIMIT 0,10)count
- 数量public Long publish(String channel, String message)
channel
- 频道message
- 信息public void publishAll(String channel, List<String> messages)
channel
- 频道List
- 要发布的信息public void subscribe(redis.clients.jedis.JedisPubSub jedisPubSub, String channel)
jedisPubSub
- 监听器channel
- 频道public void unSubscribe(redis.clients.jedis.JedisPubSub jedisPubSub)
jedisPubSub
- 监听器public Long addWithSortedSet(String key, double score, String member)
key
- keyscore
- score 值可以是整数值或双精度浮点数。member
- 有序集的成员public Long addWithSortedSet(String key, Map<String,Double> scoreMembers)
key
- keyscoreMembers
- score、member的pairpublic Set<String> revrangeByScoreWithSortedSet(String key, double max, double min)
key
- keymax
- score最大值min
- score最小值public <K,V> JedisTemplate.Pair<K,V> makePair(K key, V value)
key
- keyvalue
- valuepublic <K,V,E> JedisTemplate.PairEx<K,V,E> makePairEx(K key, V value, E expire)
key
- keyvalue
- valueexpire
- expirepublic Object set(String key, Object value, int expire)
key
- value
- expire
- Copyright © 2018. All rights reserved.