内容简介:Redis key(键)的类型只能为字符串,value (值)的类型如下 5 种类型:- string —— 字符串- hash —— 无序散列表
Redis key(键)的类型只能为字符串,value (值)的类型如下 5 种类型:
- string —— 字符串
- hash —— 无序散列表
- list —— 列表
- set —— 无序集合
- zset —— 有序集合
## 2、操作命令
>**说明这里的命令只是 Redis 命令的冰山一角,更多命令的详细介绍可以参看这里 [ Redis 中文网的命令中心 ]**( http://redis.cn/commands.html*)**,重要!!!*
### 2.1 string
对整个字符串或者字符串的其中一部分执行操作,对整数和浮点数执行自增或者自减操作。
- set key value
添加或修改(对已存在的键)单个字符串
\
set name xiaoming \
- get key
获取(查询)键对应的字符串值
\
get name \
- del key
删除键和对应的值
\
del key \
- mset key value [key value ...]
添加或修改(已存在的键)多个字符串
\
mset user1 xiaoming user2 xiaohong \
- mget key [key ...]
获取(查询)多个键对应的字符串值
\
mget user1 user2 \
- incr key
对整数型的字符串加 1
\
set age 21 incr age // 22 get age // 22 \
- decr key
对整数型的字符串减 1
\
set age 22 decr age // 21 get age // 21 \
- append key value
追加值
\
set name aaa get name // aaa append name bbb get name // aaabbb \
### 2.2 hash
⽤于存储对象,对象的结构为属性、值,添加、获取、移除单个键值对 获取所有键值对 检查某个键是否存在。
- hset key field value
设置单个属性
\
hset user name xiaoming \
- hget key field
获取单个属性的值
\
hget user name // xiaoming \
- hmset key field1 value1 field2 value2 ...
设置多个属性
\
hmset user name xiaoming age 21 \
- hmget key field1 field2 ...
获取多个属性的值
\
hmget user name age \
- hkeys key
获取指定键所有的属性
\
hkeys user \
- hvals key
获取指定键所有属性的值
\
hvals user \
- hdel key field1 [field2 ...]
删除指定的属性及属性对应的值
\
hdel user name \
### 2.3 list
列表的元素类型为 string,按照插入顺序排序,从两端压入或者弹出元素,读取单个或者多个元素进行修剪,只保留一个范围内的元素。
- lpush key value1 [value2 ...]
从左端插入数据
\
lpush nums1 0 1 2 \
- rpush key value1 [value2 ...]
从右端插入数据
\
rpush nums2 0 1 2 \
- lrange key start stop
获取键对应列表指定范围的元素,start 为开始索引(索引从左侧开始,第一个元素下标为 0),stop 为结束索引(索引可以是负数,表示从右侧开始)
\
lrange nums1 0 -1 // 2 1 0 lrange nums2 0 -1 // 0 1 2 \
- linsert key before|after pivot value
在 pivot 的前或后插入元素
\
linsert key nums1 before 2 3 lrange nums1 0 -1 // 3 2 1 0 \
- lset key index value
设置(修改)指定索引位置的元素值
\
lset nums2 1 11 lrange nums2 0 -1 // 0 11 2 \
- lrem key count value
删除键对应列表前 count 次出现的值(count > 0 表示从头往尾删除,count < 0 表示从尾往头删除,count = 0 表示删除所有)
\
lpush ab a b a a b a b b lrange ab 0 -1 // b b a b a a b a lrem ab 2 b // a b a a b a \
### 2.4 set
无序集合的元素为 string,元素具有唯一性,不重复,对集合没有修改操作,添加、获取、移除单个元素 检查一个元素是否存在于集合中 计算交集、并集、差集 从集合里面随机获取元素。
- sadd key member [member ...]
添加元素到无序集合
\
sadd set1 0 0 1 1 2 2 \
- smembers key
查看无序集合中的元素成员
\
smembers set1 // 0 1 2 \
- scard key
查看无序集合中的元素数量
\
scard set1 // 3 \
- srem key member [member ...]
删除指定无序集合中的元素成员
\
srem set1 1 \
- sinter key [key ...]
计算交集
\
sadd set1 0 1 2 sadd set2 1 2 3 sinter set1 set2 // 1 2 \
- sinterstore destination key [key]
计算交集并将交集值存储在 destination 集合中
\
sadd set1 0 1 2 sadd set2 1 2 3 sinterstore set1_inter_set2 set1 set2 smembers set1_inter_set2 // 1 2 \
- sunion key [key ...]
计算并集
\
sunion set1 set2 // 0 1 2 3 \
- sunionstore destination key [key]
计算并集并将并集值存储在 destination 集合中
\
sadd set1 0 1 2 sadd set2 1 2 3 sunionstore set1_union_set2 set1 set2 smembers set1_union_set2 // 0 1 2 3 \
- sdiff key [key ...]
计算差集
\
sdiff set1 set2 // 0 sdiff set2 set1 // 3 \
- sdiffstore destination key [key]
计算差集并将差集值存储在 destination 集合中
\
sadd set1 0 1 2 sadd set2 1 2 3 sdiffstore set1_diff_set2 set1 set2 sdiffstore set2_diff_set1 set1 set2 smembers set1_diff_set2 // 0 smembers set2_diff_set1 // 3 \
### 2.5 zset
有序集合的元素为 string,元素具有唯一性,不重复,每个元素都会关联一个 double 类型的 score 表示权重,通过权重来给元素排序,没有修改操作,添加、获取、删除元素 根据分值范围或者成员来获取元素 计算一个键的排名。
- zadd key score member [score member …] 添加元素到有序集合
\
zadd rank 10 xiaoming 9 xiaohong 8 xiaoguang 7 xiaohei 6 xiaozhi 5 xiaozhang \
- zrange key start stop 查看有序集合中所有元素(默认是升序排序)
\
zrange rank 0 -1 // xiaozhang xiaozhi xiaohei xiaoguang xiaohong xiaoming \
- zcard key
查看有序集合中的元素数量
\
zcard rank // 6 \
- zrangebyscore min max 查看有序集合中 score 在 min 和 max 之间的元素
\
zrangebyscore 6 8 // xiaozhi xiaohei xiaoguang \
- zscore key member 查看有序集合中指定元素的 score 值
\
zscore rank xiaohei // 7 \
- zrem key member [member …] 删除有序集合中指定元素及对应的 score 值
\
zrem rank xiaohei xiaozhang \
- zremrangebyscore key min max 删除有序集合中指定返回 score 值的元素
\
zremrangebyscore rank 7 8 \
### 2.6 key 命令
查找键的相关命令(对上面的类型都适用),参数支持正则表达式。
- keys pattern
根据规则查找键
\
keys * // 查找所有的键 keys a* // 查找 a 开头的键 \
- exists key [key ...]
判断键是否存在,如果存在返回 1,不存在返回 0
\
exists name \
- type key
查看键对应的 value 类型
\
type name \
- del key [key ...]
删除键和键对应的值
\
del name \
- expire key seconds
设置键的过期时间,单位为秒
\
set name xiaoming get name // xiaoming expire name 1 get name // nil \
- ttl key
查看剩下的有效时间,单位为秒
\
set name xiaoming get name // xiaoming expire name 100 ttl name // 98 ttl name // 97 有效时间逐渐减少 \
本文作者:Wizey
本文链接:http://wenshixin.gitee.io/blog/2019/02/02/Redis数据类型和基本操作/
版权声明:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
以上所述就是小编给大家介绍的《Redis数据类型和基本操作》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python 3学习笔记(上卷)
雨痕 / 电子工业出版社 / 2018-1 / 89
经过9 年的发展,Python 3 生态已相当成熟。无论是语言进化、解释器性能提升,还是第三方支持,都是如此。随着Python 2.7 EOF 日趋临近,迁移到Python 3 的各种障碍也被逐一剔除。是时候在新环境下学习或工作了。 人们常说Python 简单易学,但这是以封装和隐藏复杂体系为代价的。仅阅读语言规范很难深入,亦无从发挥其应有能力,易学难精才是常态。《Python 3学习笔记(......一起来看看 《Python 3学习笔记(上卷)》 这本书的介绍吧!