2020-11-26 04:39:09
Redis中key、string、hash的常见命令详解
Key相关命令
Redis的key本质是字符串类型,需满足唯一性约束,可通过以下命令管理:
SET key value:将指定key的值设为value,若key已存在则覆盖原有值。例如SET name "John"。
GET key:获取key对应的值,若key不存在返回nil。例如GET name返回"John"。
DEL key:删除指定key,返回被删除key的数量(整数)。例如DEL name返回(integer) 1。
EXISTS key:检查key是否存在,存在返回1,否则返回0。例如EXISTS name返回(integer) 0。
KEYS pattern:通过通配符模式匹配并返回所有符合条件的key列表。例如KEYS *返回当前数据库所有key。
String相关命令
String是Redis最基础的数据类型,支持文本或二进制数据,最大长度512MB。常用操作包括:
SET key value:与key的SET命令功能相同,但string类型可存储二进制数据。
GET key:获取string类型的值。
APPEND key value:将value追加到key的当前值末尾,返回新字符串长度。例如APPEND name " Doe"返回(integer) 8。
STRLEN key:返回key对应值的字节长度。例如STRLEN name返回(integer) 8。
INCR key:将key存储的整数值加1,若key不存在则初始化为0后加1。例如INCR age返回(integer) 31。
DECR key:将key存储的整数值减1,若key不存在则初始化为0后减1。例如DECR age返回(integer) 30。
Hash相关命令
Hash用于存储关联数组(键值对集合),适合表示复杂对象。核心命令如下:
HSET key field value:在key对应的hash中设置field的值为value,返回成功设置的field数量。例如HSET person name "John"返回(integer) 1。
HGET key field:获取key对应hash中field的值,若field不存在返回nil。例如HGET person name返回"John"。
HDEL key field [field ...]:删除key对应hash中的一个或多个field,返回被删除field的数量。例如HDEL person age返回(integer) 1。
HEXISTS key field:检查key对应hash中是否存在field,存在返回1,否则返回0。例如HEXISTS person age返回(integer) 0。
HKEYS key:返回key对应hash中所有field的列表。例如HKEYS person返回1) "name"。
总结
Redis通过key、string、hash三种数据类型及对应命令,提供了高效的数据存储与操作能力。key用于唯一标识数据,string适合简单值存储,hash则擅长结构化数据管理。实际应用中可根据需求选择合适类型,并结合其他数据类型(如list、set)构建复杂场景解决方案。