Redis学习-五种基础数据类型

Redis共有5种基础数据类型,分别为
string(字符串)
list(列表)
hash(字典)
set(集合)
sorted_set(有序集合)

有个需要先记住的点:Redis中的数据都是按照Key-value来存放的

一.string类型

string是最简单的类型

常见的命令:

1.set key value
设置指定key的值,不存在则创建

2.mset key1 value1 key2 value2…
设置或创建多个数据

3.get key
获取指定key的值

4.mget key1 key2…
获取多个数据

5.strlen key
获取字符串的字符个数(长度)

6.append key value
追加信息到原本数据的末尾,如果不存在则新建

7.incr key
将key中存储的数值+1

8.incrby key increment
将key中存储的数值+increment的值

9.incrbyfloat key increment
与上条相同,支持浮点数

10.decr key

11.decrby key increment
与前面几条相反,是减少key的值

12.setex key seconds value
设置key的值并设置过期时间,这是一个原子操作,设置值和设置过期时间会同时完成。

13.setnx key value
如果key不存在就创建,否则不执行。这个与setex很像,如何区分呢?setnx里的nx的意思是not exist,记住这一点就不会弄混啦。

14.del key
DEL 命令用于删除已存在的键。不存在的 key 会被忽略。

关于第7-11条,有几个注意点:

  1. incr也可以用于减操作,只需要令increment为负数即可
  2. string在Redis内部存储就是一个字符串,当遇到incr/decr等操作时,会自动转换为数值进行计算。如果原始数据不能转换为数值,或是超过了数值范围上限(2^64-1),将会报错。
  3. incr的应用场景:可用于控制数据库表的主键id

二.hash类型

当我们要存储一个对象类型时,比如说对象有三个属性,id,name,age,虽然可以通过设置三个string来进行存储,但是读写操作都极不方便,此时就可以使用hash类型。

hash的底层使用哈希表结构实现数据存储,在一个存储空间内保存多个键值对,能够方便地对这些键值对进行管理。

存储结构如图。
在这里插入图片描述

这里有个需要注意的点:filed。在常见的哈希表中,我们都将存储在哈希表中的键值对成为key-value。但在Redis中我们并不这样称呼,我们将哈希表的表名称为key,将里面存储的键值对称为field-value。

关于hash的存储结构优化

  • 如果field的数量较少,存储结构优化为类数组结构
  • 如果field的数量较多,存储结构优化为HashMap结构

常见的命令:

1.hset key field value
添加/修改数据

2.hmset key field1 value1 field2 field2…
添加/修改多个数据

3.hget key field
获取key中指定field的数据

4.hmget key field1 field2…
获取key中多个field的数据

5.hgetall key
获取key中全部数据,注意这里会同时获取field和value

6.hdel key field1 (field2…)
删除指定field,可删除多个field

7.hlen key
获取hash中字段的数量(hash的长度)

8.hexists key field
判断hash key中指定的field是否存在

9.hkeys key
获取hash中所有字段名

10.hvals key
获取hash中所有字段值

11.hincrby key field increment
为指定字段的数据增加指定范围的值

12.hincrbyfloat key increment
为指定字段的数据增加指定范围的值(支持浮点数)

13.hsetnx key filed value
如果field不存在,则添加一个field并赋值,已存在则不执行。

关于hash的几个注意点:

  1. hash的value只存储字符串,不允许存储其他类型的数据,不存在嵌套现象。
  2. 每个hash能存储的键值对数量为2^32-1。
  3. 虽然hash能够很方便地存储对象类型,但它的设计初衷并不是用来存储大量对象的,不可将hash当作对象列表来使用。

hash的应用场景:
在这里插入图片描述
在这里插入图片描述
参考资料:http://yun.itheima.com/course/611.html?bili

待更新。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值