Redis常用命令汇总

使用redis客户端登录某服务器(或集群)


redis-cli -h ip地址 -p 端口

查看key的类型


type 键名


Hash相关命令


Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。

Redis 中每个 hash 可以存储$2^{32}$键值对(4 294 967 295,即40多亿)

redis本身是k-v,v又是一个k-v,记作k2-v2。即一个二维数组

所谓的filed即k2,也称为字段,其实就是二级key


Redis 哈希(Hash)

Redis Hmget 命令

Redis 选择hash还是string 存储数据?


hset 为哈希表中的字段赋值


hset key_name field value

无则新建,有则更新 (如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 )


之前HSET只能设置单个键值对,想要同时设置多个则必须使用HMSET。但现在HSET也可以设置多个键值对了,HMSET几乎没啥用了


hget 获取哈希表指定字段的值


hget key_name field_name

无法同时获取多个field的值


Hmget 获取哈希类型的value中,一个或多个给定字段的值


m 即multiple


hmget key field1 [field2]


hgetall 获取哈希类型的key的所有字段和值


若 key 不存在,返回空列表


redis获取哈希类型的值,hget、hmget、hgetall

  • hget 获取hash类型的值: hget 键名 value值的键名

  • hmget 获取多个hash的值: hmget 键名 value值的键1 value值的键2 value值的键3 ...

  • hgetall 获取hash中的所有数据(键和值): hgetall 键名


hexists 查看哈希表的指定字段是否存在


hexists key_name field_name


Hkeys 获取哈希表中的所有域(field)



Hvals 返回哈希表所有的值



Hlen 获取哈希表中字段的数量



Hsetnx 无则创建 有则忽略


nx 即 not exist


为哈希表中不存在的的字段赋值

如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。

如果字段已经存在于哈希表中,操作无效。

如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令


hscan 迭代器


当需要遍历Redis所有key或指定模式的key时,首先想到的是keys命令,但如果redis数据非常大,且key非常多的情况下,查询时很可能会较慢,造成整个redis阻塞,有什么办法解决呢?

SCAN命令是一个基于游标的迭代器, 这意味着命令每次被调用都需要使用上一次这个调用返回的游标作为该次调用的游标参数,以此来延续之前的迭代过程, 当SCAN命令的游标参数被设置为 0 时, 服务器将开始一次新的迭代, 而当服务器向用户返回值为 0 的游标时, 表示迭代已结束,HSCAN同SCAN命令相同。



hincrby 为字段值加上指定增量值


[hincrbyfloat](https://www.runoob.com/redis/hashes-hincrbyfloat.html) 为字段值加上指定浮点数增量值