redis为用户定义了五种数据类型,分别是:
String(字符串),Hash(哈希),List(列表),Set(集合),ZSet(有序集合),并且为这些数据类型提供了大量的命令,这些命令都是原子级别的。虽然大都数情况,我们不会直接用这些原生的命令,但是熟悉这些命令,会让我们对redis有一个更好的了解,而且很多语言对redis的访问的API,都是基于这些命令开发的,掌握这些命令以后对特定语言的API将会得心应手。
1. 字符串
| 命令格式 | 说明 |
|---|---|
| set key value | 赋值 |
| get key | 取值 |
| setnx key value | (Set if Not Exist)只有在 key 不存在时设置 key 的值 |
| setrange key offset value | 用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始 |
| getrange key start end | 返回 key 中字符串值的子字符 |
| getset key value | 将给定 key 的值设为 value ,并返回 key 的旧值 |
| incr key | 递增数字 |
| incrby key increment | 增加指定的整数 |
| decr key | 减少数字 |
| decrby key increment | 减少指定的整数 |
| incrbyfloat key increment | 增加指定浮点数 |
| append key value | 向尾部追加值 |
| strlen key | 获取字符串长度 |
| mget key [key …] | 一次获取多个键值 |
| mset key value [key value…] | 一次设置多个键值 |
| getbit key offset | 获取键值得指定二进制位的值 |
| setbit key offset value | 设置键值得指定二进制位的值 |
| bitcount key [start] [end] | 获取键值中位是1的二进制位的个数 |
| bitop operation destkey key [key …] | 对指定的键值做二进制的位运算,结果保存在destkey中,支持AND, OR, XOR, NOT |
| setex key seconds value | (Set Expire)将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位) |
| psetex key milliseconds value | (Precise Set Expire)这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位 |
2. 哈希
| 命令格式 | 说明 |
|---|---|
| hget key field | 取值 |
| hset key field value | 赋值 |
| hmget key filed [field …] | 一次获取多个值 |
| hmset key filed value [filed value…] | 一次设置多个值 |
| hgetall key | 一次获取所有的值 |
| hexists key field | 判断字段是否存在 |
| hsetnx key field value | 当字段不存在时赋值 |
| hincrby key field increment | 增加数字 |
| hdel key field | 删除字段 |
| hkeys key | 获得字段名 |
| hvals key | 获取字段值 |
| hlen key | 获取字段数量 |
| HINCRBYFLOAT key field increment | 为哈希表 key 中的指定字段的浮点数值加上增量 |
3. 列表
| 命令格式 | 说明 |
|---|---|
| LPUSH key value [value …] | 向列表左端添加数据 |
| RPUSH key value [value …] | 向列表右端添加数据 |
| LPOP key | 从列表左端弹出数据 |
| RPOP key | 从列表右端弹出数据 |
| LLEN key | 获取列表元素格式 |
| LRANGE key start stop | 获取列表片段 |
| LREM key count value | 删除列表指定值得元素 |
| LINDEX key index | 获取指定索引的元素 |
| LSET key index value | 设置指定索引的元素值 |
| LINSERT key before|after pivot value | 在指定元素前后插入元素 |
| RPOPLPUSH source destination | 将元素从一个列表转移到另一个列表 |
| LPUSHX key value | (List Push if exist)将一个或多个值插入到已存在的列表头部 |
| LTRIM key start stop | 只保留指定区间内的元素,不在指定区间之内的元素都将被删除 |
| BLPOP key1 [key2… ] timeout | 移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止,如果timeout为0则一直等待下去 |
| BRPOP key1 [key2… ] timeout | 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止,如果timeout为0则一直等待下去 |
4. 集合
| 命令格式 | 说明 |
|---|---|
| SADD key member [member …] | 增加元素 |
| SREM key member [member …] | 删除元素 |
| SMEMBERS | 获取集合中的所有元素 |
| SISMEMBER key member | 判断集合中的元素是否存在 |
| SDIFF key [key …] | 差集 |
| SINTER key [key …] | 交集 |
| SUNION key [key …] | 并集 |
| SCARD key | 获得集合中元素个数 |
| SDIFFSTORE dest key [key …] | 差集存储结果于dest |
| SINTERSTORE dest key [key …] | 交集存储结果于dest |
| SUNIONSTORE key [key …] | 并集存储结果于dest |
| SRANDMEMBER key [count] | 随机从集合中获得元素 |
| SPOP key | 随机从集合中弹出一个元素 |
| SMOVE source destination member | 将member元素从source集合移动到destination集合 |
5. 有序集合
| 命令格式 | 说明 |
|---|---|
| ZADD key score1 member1 [score2 member2 …] | 添加一个或多个成员到有序集合,或者如果它已经存在更新其分数 |
| ZSCORE key member | 获取元素分数 |
| ZRANGE key start stop [withscores] | 获取某个范围内的元素列表 |
| ZREVRANGE key start stop [withscores] | 逆序获取某个范围内的列表 |
| ZRANGEBYSCORE key min max [withscores] [limit offset count] | 集合(升序)排序后取score在[min, max]内的元素,并跳过offset个,取出n个 |
| ZINCRBY key increment member | 增加某个元素的分数 |
| ZCARD key | 获取元素个数 |
| ZCOUNT key min max | 统计指定范围内的元素个数 |
| ZREM key member [member …] | 删除一个或多个元素 |
| ZREMRANGEBYRANK key start stop | 删除排名范围内的元素 |
| ZREMRANGEBYStore key min max | 删除分数范围内的元素 |
| ZRANK key member | 获得元素排名 |
| ZREVRANK key member | 获得元素逆序排名 |
| ZINTERSTORE destination numkeys key [key …] [weights weight [weight …]] [aggregate sum|min|max] | 计算有序结合的交集 |
6. 其他
| 命令格式 | 说明 |
|---|---|
| KEYS PATTERN | 获取符合规则的键名列表,pattern支持global风格的通配符号:?,*,[],\x |
| EXISTS key | 判断一个键是否存在 |
| DEL key | 删除键 |
| TYPE key | 获取键的类型 |
global类型的通配符规则
| 符号 | 含义 |
|---|---|
| ? | 通配一个字符 |
| * | 匹配0个或多个字符 |
| [] | 匹配一个范围的字符,比如[a-d],可以匹配abcd中任意一个字符 |
| \x | 匹配专意字符x,比如要匹配?,可以使用? |
本文深入解析Redis提供的五种核心数据类型:字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(ZSet)。每种类型都附有详细的命令介绍,帮助读者全面理解Redis的功能和应用。

被折叠的 条评论
为什么被折叠?



