美文网首页
Redis数据类型

Redis数据类型

作者: zyn_10 | 来源:发表于2019-02-21 18:29 被阅读0次

一、Redis数据类型

redis支持五种数据类型,String(字符串),Hash(哈希),List(列表),Site(集合),Sorted site(有序集合)。


String(字符串)

string是Redis最基本的数据类型,类似于memcache的key=>value形式。
string是二进制安全的。即string可以包含任何数据,如图片或者序列化的对象。
string是Redis最基本的数据类型,一个键最大能存储512M
实例:

redis 127.0.0.1:6379> SET name "test"
OK
redis 127.0.0.1:6379> GET name
test


Hash(哈希)

hash是一个键值对(key => value)的集合,是一个 string 类型的 field 和 value 的映射表(可以想象一下MySQL的表的形式),适用于存储对象
例:

redis> HMSET myhash field1 "Hello" field2 "World"
OK
redis> HMGET myhash field1
"Hello"
redis> HMGET myhash field2
"World"

每个 hash 可以存储 2^{32}-1键值对。


List(列表)

Redis 列表是简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表的头部或者尾部(LPUSH/RPUSH),或者从列表的头部或者尾部取出一个元素(LPOP/RPOP)。
实例

redis 127.0.0.1:6379> lpush test 1
(integer) 1
redis 127.0.0.1:6379> lpush test 2
(integer) 1
redis 127.0.0.1:6379> lpush test 3
(integer) 1
redis 127.0.0.1:6379> lrange 0 10
1) "1"
2) "2"
3) "3"

列表最多存储 2^{32}-1个元素。


Set(集合)

Redis 的 set 是 string 的无序集合,不会存在重复的元素。
集合是通过 hash 表实现的,添加、删除、查找的复杂度都是O(1)。

sadd命令

添加一个元素到 key 对应的 set 集合中,成功则返回1,如果元素已存在集合中则返回 0,如果 key 对应的 set 不存在,则返回 错误。

sadd key member

实例:

redis 127.0.0.1:6379> sadd test 'a'
(integer) 1
redis 127.0.0.1:6379> sadd test 'b'
(integer) 1
redis 127.0.0.1:6379> sadd test 'c'
(integer) 1
redis 127.0.0.1:6379> sadd test 'c'
(integer) 0
redis 127.0.0.1:6379> smembers test
1) "a"
2) "b"
3) "c"

集合中最大成员数 2^{32}-1


Sorted set(有序集合)

string 类型元素的有序集合,是 set 的有序形式。
每个元素都会关联一个 double 类型的分数。Redis 通过分数来为集合中的成员进行从小到大的排序。Sorted set的成员不能重复,但是分数(score)可以重复。

zadd

添加元素到集合,元素在集合中则更新对应的 score

zadd key score member

实例:

redis 127.0.0.1:6379> zadd test 0 a
(integer) 1
redis 127.0.0.1:6379> zadd test 1 b
(integer) 1
redis 127.0.0.1:6379> zadd test 2 c
(integer) 1
redis 127.0.0.1:6379> zadd test 2 c
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE test 0 1000
1) a
2) b
3) c

ZRANGEBYSCORE 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。

相关文章

网友评论

      本文标题:Redis数据类型

      本文链接:https://www.haomeiwen.com/subject/vbtdyqtx.html