public class RedisHelper.HashOps extends Object
提示:简单的,可以将 redis 中 hash 的数据结构看作是 Map
| 构造器和说明 |
|---|
HashOps() |
| 限定符和类型 | 方法和说明 |
|---|---|
long |
hDelete(String key,
Object... entryKeys)
(批量)删除(key 对应的)hash 中的对应 entryKey-entryValue
注: 1、若 redis 中不存在对应的 key,则返回 0;
2、若要删除的 entryKey,在 key 对应的 hash 中不存在,在 count 不会 +1, 如:
RedisHelper.HashOps.hPut("ds", "name", "邓沙利文");
RedisHelper.HashOps.hPut("ds", "birthday", "1994-02-05");
RedisHelper.HashOps.hPut("ds", "hobby", "女");
则调用 RedisUtil.HashOps.hDelete("ds", "name", "birthday", "hobby", "non-exist-entryKey")
的返回结果为 3
注:若(key 对应的)hash 中的所有 entry 都被删除了,那么该 key 也会被删除
|
boolean |
hExists(String key,
String entryKey)
查看(key 对应的)hash中,是否存在 entryKey 对应的 entry
注:若 redis 中不存在 key,则返回 false。
|
Object |
hGet(String key,
String entryKey)
获取到 key 对应的 hash 里面的对应字段的值
注: 若 redis 中不存在对应的 key,则返回 null。
|
Map<Object,Object> |
hGetAll(String key)
获取到 key 对应的 hash(即:获取到 key 对应的 Map
|
long |
hIncrBy(String key,
Object entryKey,
long increment)
增/减(hash中的某个entryValue值) 整数
注: 负数则为减。
|
double |
hIncrByFloat(String key,
Object entryKey,
double increment)
增/减(hash中的某个entryValue值) 浮点数
注: 负数则为减。
|
Set<Object> |
hKeys(String key)
获取(key对应的)hash中的所有entryKey
注: 若key不存在,则返回的是一个空的Set(,而不是返回null)
|
List<Object> |
hMultiGet(String key,
Collection<Object> entryKeys)
批量获取(key 对应的)hash 中的 entryKey 的 entryValue
注:若 hash 中对应的 entryKey 不存在,那么返回的对应的 entryValue 值为 null
注:redis 中 key 不存在,那么返回的 List 中,每个元素都为 null。
|
void |
hPut(String key,
String entryKey,
String entryValue)
向 key 对应的 hash 中,增加一个键值对 entryKey-entryValue
注:同一个 hash 里面,若已存在相同的 entryKey,那么此操作将丢弃原来的 entryKey-entryValue,
而使用新的 entryKey-entryValue。
|
void |
hPutAll(String key,
Map<String,String> maps)
向 key 对应的 hash 中,增加 maps(即: 批量增加 entry 集)
注:同一个 hash 里面,若已存在相同的 entryKey,那么此操作将丢弃原来的 entryKey-entryValue,
而使用新的 entryKey-entryValue
|
boolean |
hPutIfAbsent(String key,
String entryKey,
String entryValue)
当 key 对应的 hash 中,不存在 entryKey 时,才(向 key 对应的 hash 中)增加 entryKey-entryValue
否者,不进行任何操作
|
org.springframework.data.redis.core.Cursor<Map.Entry<Object,Object>> |
hScan(String key,
org.springframework.data.redis.core.ScanOptions options)
根据options匹配到(key对应的)hash中的对应的entryKey, 并返回对应的entry集
注: ScanOptions实例的创建方式举例:
1、ScanOptions.NONE
2、ScanOptions.scanOptions().match("n??
|
long |
hSize(String key)
获取(key对应的)hash中的所有entry的数量
注: 若redis中不存在对应的key, 则返回值为0
|
List<Object> |
hValues(String key)
获取(key对应的)hash中的所有entryValue
注: 若key不存在,则返回的是一个空的List(,而不是返回null)
|
public void hPut(String key, String entryKey, String entryValue)
注:同一个 hash 里面,若已存在相同的 entryKey,那么此操作将丢弃原来的 entryKey-entryValue, 而使用新的 entryKey-entryValue。
key - 定位 hash 的 keyentryKey - 要向 hash 中增加的键值对里的键entryValue - 要向 hash 中增加的键值对里的值public void hPutAll(String key, Map<String,String> maps)
注:同一个 hash 里面,若已存在相同的 entryKey,那么此操作将丢弃原来的 entryKey-entryValue, 而使用新的 entryKey-entryValue
key - 定位 hash 的 keymaps - 要向 hash 中增加的键值对集public boolean hPutIfAbsent(String key, String entryKey, String entryValue)
key - 定位 hash 的 keyentryKey - 要向 hash 中增加的键值对里的键entryValue - 要向 hash 中增加的键值对里的值public Object hGet(String key, String entryKey)
注: 若 redis 中不存在对应的 key,则返回 null。 若 key 对应的 hash 中不存在对应的 entryKey,也会返回 null。
key - 定位 hash 的 keyentryKey - 定位 hash 里面的 entryValue 的 entryKeypublic Map<Object,Object> hGetAll(String key)
注:若 redis 中不存在对应的 key,则返回一个没有任何 entry 的空的 Map(而不是返回 null)。
key - 定位 hash 的 keypublic List<Object> hMultiGet(String key, Collection<Object> entryKeys)
注:若 hash 中对应的 entryKey 不存在,那么返回的对应的 entryValue 值为 null
注:redis 中 key 不存在,那么返回的 List 中,每个元素都为 null。
追注:这个 List 本身不为 null,size 也不为 0,只是每个 list 中的每个元素为 null 而已。
key - 定位 hash 的 keyentryKeys - 需要获取的 hash 中的字段集public long hDelete(String key, Object... entryKeys)
注: 1、若 redis 中不存在对应的 key,则返回 0; 2、若要删除的 entryKey,在 key 对应的 hash 中不存在,在 count 不会 +1, 如:
RedisHelper.HashOps.hPut("ds", "name", "邓沙利文"); RedisHelper.HashOps.hPut("ds", "birthday", "1994-02-05"); RedisHelper.HashOps.hPut("ds", "hobby", "女"); 则调用 RedisUtil.HashOps.hDelete("ds", "name", "birthday", "hobby", "non-exist-entryKey") 的返回结果为 3 注:若(key 对应的)hash 中的所有 entry 都被删除了,那么该 key 也会被删除
key - 定位 hash 的 keyentryKeys - 定位要删除的 entryKey-entryValue 的 entryKeypublic boolean hExists(String key, String entryKey)
注:若 redis 中不存在 key,则返回 false。 注:若 key 对应的 hash 中不存在对应的 entryKey,也会返回 false。
key - 定位 hash 的 keyentryKey - 定位 hash 中 entry 的 entryKeypublic long hIncrBy(String key, Object entryKey, long increment)
注: 负数则为减。 注: 若key不存在,那么会自动创建对应的hash,并创建对应的entryKey、entryValue,entryValue的初始值为increment。 注: 若entryKey不存在,那么会自动创建对应的entryValue,entryValue的初始值为increment。 注: 若key对应的value值不支持增/减操作(即: value不是数字), 那么会 抛出org.springframework.data.redis.RedisSystemException
key - 用于定位hash的keyentryKey - 用于定位entryValue的entryKeyincrement - 增加多少org.springframework.data.redis.RedisSystemException - key对应的value值不支持增/减操作时public double hIncrByFloat(String key, Object entryKey, double increment)
注: 负数则为减。
注: 若key不存在,那么会自动创建对应的hash,并创建对应的entryKey、entryValue,entryValue的初始值为increment。
注: 若entryKey不存在,那么会自动创建对应的entryValue,entryValue的初始值为increment。
注: 若key对应的value值不支持增/减操作(即: value不是数字), 那么会
抛出org.springframework.data.redis.RedisSystemException
注: 因为是浮点数, 所以可能会和RedisHelper.StringOps.incrByFloat(String, double)一样, 出现精度问题。
追注: 本人简单测试了几组数据,暂未出现精度问题。
key - 用于定位hash的keyentryKey - 用于定位entryValue的entryKeyincrement - 增加多少org.springframework.data.redis.RedisSystemException - key对应的value值不支持增/减操作时public Set<Object> hKeys(String key)
注: 若key不存在,则返回的是一个空的Set(,而不是返回null)
key - 定位hash的keypublic List<Object> hValues(String key)
注: 若key不存在,则返回的是一个空的List(,而不是返回null)
key - 定位hash的keypublic long hSize(String key)
注: 若redis中不存在对应的key, 则返回值为0
key - 定位hash的keypublic org.springframework.data.redis.core.Cursor<Map.Entry<Object,Object>> hScan(String key, org.springframework.data.redis.core.ScanOptions options)
注: ScanOptions实例的创建方式举例: 1、ScanOptions.NONE 2、ScanOptions.scanOptions().match("n??e").build()
key - 定位hash的keyoptions - 匹配entryKey的条件
注: ScanOptions.NONE表示全部匹配。
注: ScanOptions.scanOptions().match(pattern).build()表示按照pattern匹配,
其中pattern中可以使用通配符 * ? 等,
* 表示>=0个字符
? 表示有且只有一个字符
此处的匹配规则与RedisHelper.KeyOps.keys(String)处的一样。Copyright © 2023 Irvingsoft. All rights reserved.