Redis的常用数据类型

一. String类型

String类型为最基本的数据类型, 二进制安全. 可以存储任何的数据 ,包含jpg图片, 序列化的对象等等.
对String类型的指令演示命令如下图所示:
设置值就采用set 键 值 的形式
获取值就采用get 键 的形式, 通过键获取值. 如果键相同, 则会自动覆盖原来的值.
下图也演示了, 如果值为整数类型, 可以使用incr 键 的方式对数值进行加一 .

如果数值不是整数, 使用incr函数会报错 , 提示如下 :
(error) ERR value is not an integer or out of range
redis的单个操作都是原子性的(一个事务是不可分割的最小工作单位. 事务中包含的操作,要么全部成功, 要么全部失败. ) . redis的原子性, 使得开发者不用考虑并发的问题, 可以使用incr来实行自增的操作.

String类型之所以能存储二进制数据, 是因为底层的sds动态字符串.

二. Hash 类型

Hash类型为String元素组成的字典, 适用于存储对象,存储对象中的键和值.
演示的命令如下:
给对象初始化赋值, 采用hmset命令, 声明"lilei"为对象, 设置了两个属性"name"和"age".
获取值采用hget 对象名 属性 的方式获取.
修改单一的属性的值,可以用hget 来修改, 也可以用hmset修改多个属性的值.

127.0.0.1:6379> hmset lilei name "LiLei" age 26 title "Senior"
OK
127.0.0.1:6379> hget lilei age
"26"
127.0.0.1:6379> hget lilei title
"Senior"
127.0.0.1:6379> hset lilei title "Pricipal"
(integer) 0
127.0.0.1:6379> hget lilei title
"Pricipal"
127.0.0.1:6379> hmset lilei name "jack" age 28
OK
127.0.0.1:6379> hget lilei title
"Pricipal"

三. List类型

List类型为列表, 按照String元素的插入顺序排序
List类型的演示如下. 给起名为mylist的列表添加了三个元素, 依次添加aaa bbb ccc
使用lrange命令取出, 0 2为取出下标为0到2的三个元素.
可以使用后进先出的特性, 用于最新消息的功能.

127.0.0.1:6379> lpush mylist aaa
(integer) 1
127.0.0.1:6379> lpush mylist bbb
(integer) 2
127.0.0.1:6379> lpush mylist ccc
(integer) 3
127.0.0.1:6379> lrange mylist 0 2
1) "ccc"
2) "bbb"
3) "aaa"
127.0.0.1:6379> 

四. Set

Set为String元素组成的无序集合 , 通过哈希表实现, 不允许重复.

Set的演示代码如下, 往集合中添加数据为sadd, 显示集合中的数据为smembers

127.0.0.1:6379> sadd myset 111
(integer) 1
127.0.0.1:6379> sadd myset 222
(integer) 1
127.0.0.1:6379> sadd myset 333
(integer) 1
127.0.0.1:6379> sadd myset 222
(integer) 0

127.0.0.1:6379> smembers myset
1) "111"
2) "222"
3) "333"
127.0.0.1:6379> sadd myset aaa
(integer) 1
127.0.0.1:6379> sadd myset bbb
(integer) 1
127.0.0.1:6379> sadd myset ccc
(integer) 1
127.0.0.1:6379> smembers myset
1) "333"
2) "222"
3) "111"
4) "ccc"
5) "bbb"
6) "aaa"

五. Sorted Set

为上一个Set类型的有序版本, 通过分数来为集合中的成员进行从小到大的排序.
Sorted Set 演示代码如下:
增加元素的命令为zadd , 第二个参数为集合名称, 第三个参数为排名的分数, 第四个参数为值.
添加成功,会返回1, 失败会返回0. 即使分数相同,值不同也能添加到集合中.
分数越高的, 取出来时, 越靠后.

127.0.0.1:6379> zadd myzset 3 abc
(integer) 1
127.0.0.1:6379> zadd myzset 1 abd
(integer) 1
127.0.0.1:6379> zadd myzset 2 asd
(integer) 1
127.0.0.1:6379> zadd myzset 2 asd
(integer) 0
127.0.0.1:6379> zadd myzset 1 abt
(integer) 1
127.0.0.1:6379>  zrangebyscore myzset 0 3
1) "abd"
2) "abt"
3) "asd"
4) "abc"

Redis的数据类型, 除了以上介绍的五种,还有用于计数的HyperLogLog
和用于支持存储地理位置信息的Geo

Redis底层数据类型的基础 :

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值