Redis数据类型和基本操作

栏目: 数据库 · 发布时间: 5年前

内容简介: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数据类型和基本操作

以上所述就是小编给大家介绍的《Redis数据类型和基本操作》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python 3学习笔记(上卷)

Python 3学习笔记(上卷)

雨痕 / 电子工业出版社 / 2018-1 / 89

经过9 年的发展,Python 3 生态已相当成熟。无论是语言进化、解释器性能提升,还是第三方支持,都是如此。随着Python 2.7 EOF 日趋临近,迁移到Python 3 的各种障碍也被逐一剔除。是时候在新环境下学习或工作了。 人们常说Python 简单易学,但这是以封装和隐藏复杂体系为代价的。仅阅读语言规范很难深入,亦无从发挥其应有能力,易学难精才是常态。《Python 3学习笔记(......一起来看看 《Python 3学习笔记(上卷)》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试