Redis 命令及数据类型 -- 通用命令

摘要

通用命令

  • 针对所有数据类型均可使用给的方法和命令

方法功能 方法 redisTemplate.xxx() Redis 原始命令 命令备注 / 推荐替代
复制 key 到新 key Boolean copy(K source, K target, boolean replace) COPY source target [REPLACE] Redis ≥ 6.2
判断 key 是否存在(单个) Boolean hasKey(K key) EXISTS key CLI 返回存在数量
统计存在的 key 数量 Long countExistingKeys(Collection<K> keys) EXISTS key [key ...] 返回存在 key 的数量
删除指定 key(同步) Boolean delete(K key) DEL key 返回是否删除成功
批量删除 key(同步) Long delete(Collection<K> keys) DEL key [key ...] 返回删除数量
删除 key(异步) Boolean unlink(K key) UNLINK key 非阻塞删除
批量删除 key(异步) Long unlink(Collection<K> keys) UNLINK key [key ...] 推荐大 key 使用
获取 key 的数据类型 DataType type(K key) TYPE key 返回 string/hash/list/set/zset/none
按模式匹配 key(阻塞) Set<K> keys(K pattern) KEYS pattern 生产环境不推荐
游标方式扫描 key Cursor<K> scan(ScanOptions options) SCAN cursor [MATCH] [COUNT] 推荐替代 KEYS
随机返回一个 key K randomKey() RANDOMKEY 可能返回 null
重命名 key void rename(K oldKey, K newKey) RENAME oldKey newKey 覆盖目标 key
key 不存在时重命名 Boolean renameIfAbsent(K oldKey, K newKey) RENAMENX oldKey newKey 原子操作
设置 key 过期时间 Boolean expire(K key, long timeout, TimeUnit unit) PEXPIRE / EXPIRE 优先毫秒精度
设置 key 在指定时间过期 Boolean expireAt(K key, Date date) PEXPIREAT / EXPIREAT 精度自动降级
设置过期策略(高级 API) ExpiryChangeState expire(K key, Expiration expiration, ExpirationOptions options) EXPIRE / PEXPIRE / EXPIREAT Spring 抽象封装
清除 key 的过期时间 Boolean persist(K key) PERSIST key 变为永久 key
获取剩余 TTL(秒) Long getExpire(K key) TTL key -1 无 TTL,-2 不存在
获取剩余 TTL(指定单位) Long getExpire(K key, TimeUnit unit) PTTL / TTL 优先毫秒
将 key 移动到其他 DB Boolean move(K key, int dbIndex) MOVE key db 集群模式不可用
导出 key 的序列化值 byte[] dump(K key) DUMP key 用于迁移
恢复 key void restore(K key, byte[] value, long ttl, TimeUnit unit, boolean replace) RESTORE key ttl value [REPLACE] DUMP 配合
排序并返回结果 List<V> sort(SortQuery<K> query) SORT key 阻塞操作
排序并指定返回类型 List<T> sort(SortQuery<K> query, RedisSerializer<T> serializer) SORT key 结果反序列化
排序并映射结果 List<T> sort(SortQuery<K> query, BulkMapper<T,V> mapper) SORT key Spring 封装
排序并映射(高级) List<T> sort(SortQuery<K> query, BulkMapper<T,S> mapper) SORT key 批量映射
排序并存储结果 Long sort(SortQuery<K> query, K storeKey) SORT key STORE destination 返回结果条数
  • 生产环境慎用的命令

命令 原因 推荐
KEYS 阻塞、O(N) SCAN
SORT 阻塞、消耗 CPU 业务侧排序
DEL 阻塞、消耗 CPU UNLINK