redis的5种数据结构的简介

5种数据结构

1、字符串

Redis 字符串是一个字节序列。在 Redis 中字符串是二进制安全的,这意味着它们没有任何特殊终端字符来确定长度,所以可以存储任何长度为 512 兆的字符串。

示例

127.0.0.1:6379> set name test
OK
127.0.0.1:6379> get name
"test"

在上面的例子中,SET 和 GET 是 Redis 命令,name 和 "yiibai" 是存储在 Redis 的键和字符串值

2、列表(有序,字符可以相同)

lpush   将给定值推入列表的左端
rpush 将给定值推入列表的右端
lrange 获取列表在给定范围上的所有制 ps: lrange list-key 0 -1 第二个位置为-1的时候展示所有的内容
lindex 获取列表在给定位置上的单个元素
lpop 从列表左端弹出一个值,并返回被弹出的值
rpop 从列表右端弹出一个值,并返回被弹出的值
127.0.0.1:6379> lpush list-key item
(integer) 1

127.0.0.1:6379> lrange list-key 0 10
1) "item"

127.0.0.1:6379> lpush list-key item1
(integer) 2
127.0.0.1:6379> lrange list-key 0 10
1) "item1"
2) "item"
127.0.0.1:6379> rpush list-key item2
(integer) 3
127.0.0.1:6379> lrange list-key 0 10
1) "item1"
2) "item"
3) "item2"

127.0.0.1:6379> lindex list-key 1

"item"

127.0.0.1:6379> lpush list-key item    (可以存储相同的数据)
(integer) 4
127.0.0.1:6379> lrange list-key 0 -1
1) "item"
2) "item1"
3) "item"
4) "item2"

127.0.0.1:6379> lrange list-key 0 -1
1) "item"
2) "item1"
3) "item"
4) "item2"

删除数据
127.0.0.1:6379> lpop list-key
"item"
127.0.0.1:6379> lrange list-key 0 -1
1) "item1"
2) "item"
3) "item2"
127.0.0.1:6379> rpop list-key
"item2"
127.0.0.1:6379> lrange list-key 0 -1
1) "item1"
2) "item"

3、集合(无序,每个字符不相同)

sadd        将给定元素添加到集合中
smembers 返回集合包含的所有元素
sismember 检查给定元素是否存在于集合中
srem 如果给定的元素存在于集合中,那么移除这个元素
127.0.0.1:6379> sadd set-key item
(integer) 1
127.0.0.1:6379> sadd set-key item1
(integer) 1
127.0.0.1:6379> smembers set-key
1) "item1"
2) "item"
127.0.0.1:6379> sismember set-key item
(integer) 1
127.0.0.1:6379> sismember set-key item2
(integer) 0
127.0.0.1:6379> smembers set-key
1) "item1"
2) "item"
127.0.0.1:6379> srem set-key item
(integer) 1
127.0.0.1:6379> smembers set-key
1) "item1"

4、散列(无序,键值不可以重复)

Redis哈希是键值对的集合。 Redis哈希是字符串字段和字符串值之间的映射,所以它们用来表示对象。

hset     在散列里面关联器给定的键值对
hmset 一次可以插入多个值
hget 获取指定散列键的值
hgetall 获取散列包含的多有的键值对
hdel 如果给定键存在于散列里面,那么移除这个键

127.0.0.1:6379> hset hash-key sub-key1 value1
(integer) 1
127.0.0.1:6379> hgetall hash-key
1) "sub-key1"
2) "value1"


127.0.0.1:6379> hset hash-key sub-key2 value2
(integer) 1
127.0.0.1:6379> hgetall hash-key
1) "sub-key1"
2) "value1"
3) "sub-key2"
4) "value2"

127.0.0.1:6379> hget hash-key sub-key1
"value1"


127.0.0.1:6379> hdel hash-key sub-key2
(integer) 1
127.0.0.1:6379> hgetall hash-key
1) "sub-key1"
2) "value1"

127.0.0.1:6379> hmset hash-key sub-key2 value2 sub-key1 value1 sub-key3 value3
OK
127.0.0.1:6379> hgetall hash-key
1) "sub-key1"
2) "value1"
3) "sub-key2"
4) "value2"
5) "sub-key3"
6) "value3"

在上面的例子中,哈希数据类型用于存储包含用户基本信息的用户对象。

5、有序集合

语序集合每个键都有一个浮点数的值,这个值叫分值

zadd           添加到集合中
zrange 获取集合元素
zrangebyscore 获取在给定分值范围内的所有元素
zrem 移除
127.0.0.1:6379> zadd zset-key 10 memeber1
(integer) 1
127.0.0.1:6379> zadd zset-key 10 memeber2
(integer) 1
127.0.0.1:6379> zadd zset-key 11 memeber2
(integer) 0
127.0.0.1:6379> zrange zset-key 0 -1
1) "memeber1"
2) "memeber2"
127.0.0.1:6379> zrange zset-key 0 -1 withscores
1) "memeber1"
2) "10"
3) "memeber2"
4) "11"

127.0.0.1:6379> zadd zset-key 11 memeber3
(integer) 1
127.0.0.1:6379> zrange zset-key 0 -1 withscores
1) "memeber1"
2) "10"
3) "memeber2"
4) "11"
5) "memeber3"
6) "11"

127.0.0.1:6379> zrangebyscore zset-key 0 100
1) "memeber1"
2) "memeber2"
3) "memeber3"
127.0.0.1:6379> zrangebyscore zset-key 0 100 withscores
1) "memeber1"
2) "10"
3) "memeber2"
4) "11"
5) "memeber3"
6) "11"
原文地址:https://www.cnblogs.com/dragkiss/p/5666338.html