五大数据类型常用的命令(此处只介绍常用命令更多命令请参考 https://www.redis.net.cn/tutorial/3505.html):
Key(键):
keys * 查看当前库全部 key 名称.
exists key 判断某个 key 是否存在. 存在返回 1, 不存在返回 0.
move key db 把当前库某个 key 移到指定库.
expire key second 为指定的 key 设置过期时间, 单位为秒.
ttl key 查看指定 key 还有多少秒过期,-1 表示永不过期,-2 表示已过期(如果过期该 key 会被移出库).
type key 查看你的 key 是什么数据类型.
del [key...] 删除指定 key, 可同时删除多个.
1.string(字符串):
string 类型是 Redis 最基本的数据类型, Redis 中一个字符串 value 最多可以是 512M.
string 类型是二进制安全的. 意思是 Redis 的 string 可以包含任何数据. 比如 jpg 图片或者序列化的对象.
set 设置一个 key-value.
get 获取一个 key 的 value.
del 删除一个或多个 key-value.
append 对指定 key 的 value 追加值.
strlen 获取指定 key 的 value 的长度.
incr 对指定 key 的 value 每次加 1. 一定要是数字才能进行加减.
decr 对指定 key 的 value 每次减 1. 一定要是数字才能进行加减.
incrby 对指定 key 的 value 每次加 n(数量可指定). 一定要是数字才能进行加减.
decrby 对指定 key 的 value 每次减 n(数量可指定). 一定要是数字才能进行加减.
getrange 获取指定 key 的 value 的指定区间范围内的值, 类似于 java 的 substring.
setrange 设置指定 key 的 value 的指定区间范围内的值, 原区间范围的值会被覆盖.
setex(set with expire) 设置一个 key-value 并指定该 key 的过期时间(秒).
setnx(set if not exist) 设置一个 key-value, 如果该 key 存在则不设置, 如果不存在则设置.
mset 设置一个或多个 key-value.
msetnx 设置一个或多个 key-value, 如果 key 都不存在则设置, 如果其中有一个 key 存在则不设置.
mget 获取一个或多个 key 的 value.
getset 获取一个 key(key 必须存在)并设置该 key 的值, 返回原来的值.
2.hash(哈希, 类似 java 里的 Map):
Redis hash 是一个键值对集合. Redis hash 是一个 string 类型的 field 和 value 的映射表, hash 特别适合用于存储对象.
类似 Java 里面的 Map<String,Object>.KV 模式不变, 但 V 是一个键值对.
hset 添加一个 hash 集合并往里面添加一对 KV.
hget 获取 hash 集合某个 Key 的数据.
hmset 添加一个 hash 集合并往里面添加 N 对 KV.
hmget 获取 hash 集合 N 个 Key 的数据.
hgetall 获取 hash 集合全部的 KV 数据.
hdel 移除 hash 集合中的 N 个 Key.
hlen 获取 hash 集合中 Key 的数量.
hexists 判断 hash 集合中某个 Key 是否存在.
hkeys 获取 hash 集合全部 Key.
hvals 获取 hash 集合全部 Value.
hincreby 给 hash 集合中的某个 key 加 N. 一定要是数字才能加, 加整数.
hincrebyfloat 给 hash 集合中的某个 key 加 N. 一定要是数字才能加, 加整数或小数.
hsetnx 添加一个 hash 集合并往里面添加一对 KV(如果 key 不存在则添加, 存在则不添加).
3.list(列表):
Redis list 列表是简单的字符串列表, 按照插入顺序排序. 你可以添加一个元素到列表的头部 (左边) 或者尾部(右边). 它的底层实际是个链表.
说明: l(left),r(right), 将结构理解为栈, l 表示栈顶, r 栈底.
lpush 添加一个 list 列表, 将一个或多个值插入到列表头部, 先进后出.
rpush 添加一个 list 列表, 将一个或多个值插入到列表尾部, 先进先出.
lrange 获取 list 列表指定区间范围内的值.
lpop 移除 list 列表顶部元素(第一个元素), 并返回被移除的元素.
rpop 移除 list 列表底部元素(最后一个元素), 并返回被移除的元素.
lindex 按照顶部索引下标获得元素.
llen 获取 list 列表的长度.
lrem 移除 list 列表 N 个 value.(lrem key count value).
ltrim 截取 list 列表指定范围内的值后再赋值给 list 列表(原值将被截取值覆盖).
rpoplpush 将指定列表的底部元素移到目标列表的顶部.
lset 设置列表指定下标的值.
linsert 在指定列表的某个元素前面或后面添加元素.(linsert key before/after 列表中的元素 添加的元素).
list 列表总结:
它是一个字符串链表, left,right 都可以添加.
如果键不存在, 创建新的链表.
如果键已存在, 新增内容.
如果值全移除, 对应的键也就消失了.
链表的操作无论是头和尾效率都极高, 但假如是对中间元素进行操作, 效率就比较低了.
4.set(集合):
Redis set 是 string 类型的无序集合. 它是通过 HashTable 实现的.
sadd 将一个或多个成员插入到 set 集合中.
smembers 遍历 set 集合.
sismember 判断指定元素是否是 set 集合的成员.
scard 获取 set 集合中元素的个数.
srem 移除 set 集合中 N 个元素.
srandmember 随机获取 set 集合中 N 个元素.
spop 随机移除 set 集合中 N 个元素并返回被移除的元素.
smove 将指定集合中的某个元素移到目标集合中.
sdiff 集合的减集.
sinter 集合的交集.
sunion 集合的并集.
5.zset(sorted set: 有序集合):
Redis zset 和 set 一样也是 string 类型元素的集合, 且不允许重复的成员. 不同的是每个元素都会关联一个 double 类型的分数.
Redis 正是通过分数来为集合中的成员进行从小到大的排序. zset 的成员是唯一的, 但分数 (score) 却可以重复.
zadd 将一个或多个成员插入到 zset 集合中.(zadd key 分数 值...)例如:[zadd zset1 80 zhangsan].
zrange 获取 zset 集合指定区间范围内的值(zrange key start stop [withscores]). 加 withscores 可查看分数与值
zrangebyscore 获取 zset 集合指定分数范围内的值(zrangebyscore key [(]min [(]max [limit offset count]),"(" 表示不包含.
zrem 移除 zset 集合中 N 个元素.
zcard 获取 zset 集合中元素的个数(不包含分数, 分数和元素是一体的).
zcount 获取 zset 集合指定分数范围内的个数.
zrank 获取 zset 集合某个元素的下标.
zscore 获取 zset 集合某个元素对应的分数.
zrevrank 逆序获取 zset 集合某个元素的下标.
zrevrange 逆序获取 zset 集合指定区间范围内的值.
zrevrangebyscore 逆序获取 zset 集合指定分数范围内的值.
来源: http://www.bubuko.com/infodetail-3114816.html