小白自学Redis-Redis数据类型

本文参考 嗨客网 Redis教程

Redis数据类型

Redis数据类型教程

Redis 支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及 zset(sorted set:有序集合)。

Redis String(字符串)类型

string 是 Redis 最基本的类型,可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。

Redis string 类型是二进制安全的。即 Redis 的 string 可以包含任何数据,比如 jpg 图片或者序列化的对象 。

Redis string 类型一个键最大能存储 512MB 数据。

案例

设置值
192.168.98.70:6379> set website haicoder.net
OK

这里我们设置了一个 key 为 website 的字符串,其对应的值为 haicoder.net。

获取值
192.168.98.70:6379> get website
"haicoder.net"

这里我们获取 key 为 website 的字符串的值,其值就是我们上面设置的 haicoder.net。

删除值
del website

Redis Hash(哈希)类型

Redis hash 是一个键值对集合。

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

每个 hash 可以存储 232 -1 键值对(40多亿)。

案例

设置值
192.168.98.70:6379> HMSET webinfo webname haicoder  weburl haicoder.net  webtype it
OK

这里我们设置了一个对象的名字是 webinfo,它的键 webname 对应的值为 haicoder ,键 weburl 对应的值为 haicoder.net,webtype 对应的类型为 it。

获取值
192.168.98.70:6379> HMGET webinfo weburl webname webtype
1) "haicoder.net"
2) "haicoder"
3) "it"

这里我们使用 HMGET 批量获取 webinfo 对象的 weburl、 webname 和 webtype 的键的值。

删除值
del webinfo

Redis List(列表)类型

Redis 的 list 是简单的字符串列表,按照插入顺序排序。

你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

案例

添加值
192.168.98.70:6379> lpush haicoder.net Redis Mongo Mysql
(integer) 3

我们向名字为 haicoder.net 的 list 里面添加了三个值,分别为 Redis,Mongo 和 Mysql。

获取值
192.168.98.70:6379> lrange haicoder.net  0 3
1) "mysql"
2) "mongo"
3) "Redis"

获取 key 为 haicoder.net 的列表的下标从 0 到 3 的数据。

删除值
del haicoder.net

Redis Set(集合)类型

Redis 的 Set 是 string 类型的无序集合。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

案列

添加值
192.168.98.70:6379> sadd haicoder.net Redis Mongo Mysql
(integer) 3

向 key 为 haicoder.net 的 set 中添加三个元素。

添加重复值
192.168.98.70:6379> sadd haicoder.net SqlServer
(integer) 1
192.168.98.70:6379> sadd haicoder.net Redis
(integer) 0

继续向 set 中添加一个值 SqlServer,此时返回 1,表示成功。再次插入一个值为 Redis,此时返回 0,表示失败,因为之前已经插入了 Redis,不可重复插入。

获取值
192.168.98.70:6379> SMEMBERS  haicoder.net
1) "Mongo"
2) "Redis"
3) "Mysql"
4) "SqlServer"

使用 smembers 获取了刚才插入的四个值。

删除值
del haicoder.net

Redis ZSet(sorted set:有序集合)类型

Redis 的 zset 和 set 一样也是 string 类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个 double 类型的分数。Redis 正是通过分数来为集合中的成员进行从小到大进行排序的。

zset 的成员是唯一的,但分数(score)却可以重复。

案例

添加值
192.168.98.70:6379> zadd haicoder.net 0  Redis 
(integer) 1
192.168.98.70:6379> zadd haicoder.net 1  Mongo
(integer) 1
192.168.98.70:6379> zadd haicoder.net 2  Mysql 3 SqlServer
(integer) 2

向 key 为 haicoder.net 的 zset 里,添加分数为 0 的 Redis 值,分数为 1 的 Mongo 值,分数为 2 的 Mysql 值和分数为 3 的 SqlServer 值。

获取值
192.168.98.70:6379> ZRANGE haicoder.net  0 -1 WITHSCORES
1) "Redis"
2) "0"
3) "Mongo"
4) "1"
5) "Mysql"
6) "2"
7) "SqlServer"
8) "3"

使用 ZRANGE 获取 key 为 haicoder.net 所有的数据,且打印出分数。

删除值
del haicoder.net

Redis数据类型总结

Redis 支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及 zset(sorted set:有序集合)。

更多

原文链接链接

其他目录

更多精选文章,可以关注下方公众号:

嗨客网(www.haicoder.net)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值