麦子学院 2017-04-30 21:55
Redis 数据类型
回复:0 查看:2118
本文和大家分享的主要是Redis
数据类型相关内容,一起来看看吧,希望对大家
学习redis数据库有所帮助。
Redis
支持五种数据类型:
string
(字符串),
hash
(哈希),
list
(列表),
set
(集合)及
zset(sorted set
:有序集合
)
。
String
(字符串)
string
是
redis
最基本的类型,你可以理解成与
Memcached
一模一样的类型,一个
key
对应一个
value
。
string
类型是二进制安全的。意思是
redis
的
string
可以包含任何数据。比如
jpg
图片或者序列化的对象 。
string
类型是
Redis
最基本的数据类型,一个键最大能存储
512MB
。
实例
redis 127.0.0.1:6379> SET name "ziqiangxuetang.com"OKredis 127.0.0.1:6379> GET name
"ziqiangxuetang.com"
在以上实例中我们使用了 Redis
的
SET
和
GET
命令。键为
name
,对应的值为
ziqiangxuetang.com
。
注意:一个键最大能存储512MB
。
Hash
(哈希)
Redis hash
是一个键值对集合。
Redis hash
是一个
string
类型的
field
和
value
的映射表,
hash
特别适合用于存储对象。
实例
redis 127.0.0.1:6379> HMSET user:1 username ziqiangxuetang.com password ziqiangxuetang.com points200OKredis 127.0.0.1:6379> HGETALL user:1
"username"
"ziqiangxuetang.com"
"password"
"ziqiangxuetang.com"
"points"
"200"redis 127.0.0.1:6379>
以上实例中 hash
数据类型存储了包含用户脚本信息的用户对象。 实例中我们使用了
Redis HMSET, HEGTALL
命令,
user:1
为键值。
每个 hash
可以存储
232 - 1
键值对(
40
多亿)。
List
(列表)
Redis
列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
实例
redis 127.0.0.1:6379> lpush ziqiangxuetang.com redis
(integer) 1redis 127.0.0.1:6379> lpush ziqiangxuetang.com mongodb
(integer) 2redis 127.0.0.1:6379> lpush ziqiangxuetang.com rabitmq
(integer) 3redis 127.0.0.1:6379> lrange ziqiangxuetang.com 0 10
1) "rabitmq"
2) "mongodb"
3) "redis"redis 127.0.0.1:6379>
列表最多可存储 232 - 1
元素
(4294967295,
每个列表可存储
40
多亿
)
。
Set
(集合)
Redis
的
Set
是
string
类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)
。
sadd
命令
添加一个string
元素到
,key
对应的
set
集合中,成功返回
1,
如果元素以及在集合中返回
0,key
对应的
set
不存在返回错误。
sadd key member
实例
redis 127.0.0.1:6379> sadd ziqiangxuetang.com redis
(integer) 1redis 127.0.0.1:6379> sadd ziqiangxuetang.com mongodb
(integer) 1redis 127.0.0.1:6379> sadd ziqiangxuetang.com rabitmq
(integer) 1redis 127.0.0.1:6379> sadd ziqiangxuetang.com rabitmq
(integer) 0redis 127.0.0.1:6379> smembers ziqiangxuetang.com
"rabitmq"
"mongodb"
"redis"
注意:以上实例中 rabitmq
添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。
集合中最大的成员数为 232 - 1 (4294967295,
每个集合可存储
40
多亿个成员
)
。
zset(sorted set
:有序集合
)
Redis zset
和
set
一样也是
string
类型元素的集合
,
且不允许重复的成员。
不同的是每个元素都会关联一个double
类型的分数。
redis
正是通过分数来为集合中的成员进行从小到大的排序。
zset
的成员是唯一的
,
但分数
(score)
却可以重复。
zadd
命令
添加元素到集合,元素在集合中存在则更新对应score
zadd key score member
实例
redis 127.0.0.1:6379> zadd ziqiangxuetang.com 0 redis
(integer) 1redis 127.0.0.1:6379> zadd ziqiangxuetang.com 0 mongodb
(integer) 1redis 127.0.0.1:6379> zadd ziqiangxuetang.com 0 rabitmq
(integer) 1redis 127.0.0.1:6379> zadd ziqiangxuetang.com 0 rabitmq
(integer) 0redis 127.0.0.1:6379> ZRANGEBYSCORE ziqiangxuetang.com 0 1000
"redis"
"mongodb"
"rabitmq"
来源:网络