redis的数据结构

8/31/2021 Redis

# 字符串(string)

String 是一组字节。在 Redis 数据库中,字符串是二进制安全的。这意味着它们具有已知长度,并且不受任何特殊终止字符的影响。可以在一个字符串中存储最多 512 兆字节的内容。


# set key value
127.0.0.1:6379> set hello world
OK

# get key
127.0.0.1:6379> get hello
"world"

1
2
3
4
5
6
7
8
9

# 哈希(hash)

哈希是键值对的集合。在 Redis 中,哈希是字符串字段和字符串值之间的映射。因此,它们适合表示对象。


# 设置值
127.0.0.1:6379> hmset user:1 name Jelly Age 20
OK

# 获取所有值
127.0.0.1:6379> hgetall user:1
1) "name"
2) "Jelly"
3) "Age"
4) "20"

# 获取单个值
127.0.0.1:6379> hget user:1 name
"Jelly"


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 列表(list)

Redis 列表定义为字符串列表,按插入顺序排序。可以将元素添加到 Redis 列表的头部或尾部。


# 列表 左边插入 3条数据
127.0.0.1:6379> lpush dbs redis
(integer) 1
127.0.0.1:6379> lpush dbs mysql
(integer) 2
127.0.0.1:6379> lpush dbs oracle
(integer) 3

# 遍历 3条数据
127.0.0.1:6379> lrange dbs 0 3
1) "oracle"
2) "mysql"
3) "redis"

# 列表 右边插入一条数据
127.0.0.1:6379> rpush dbs sqlserver
(integer) 4

# 遍历 10条数据 返回最条数据 不超过10条
127.0.0.1:6379> lrange dbs 0 10
1) "oracle"
2) "mysql"
3) "redis"
4) "sqlserver"


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 集合(set)

集合(set)是 Redis 数据库中的无序字符串集合。在 Redis 中,添加,删除和查找的时间复杂度是 O(1)。


# 集合添加数据
127.0.0.1:6379> sadd language c
(integer) 1
127.0.0.1:6379> sadd language c++
(integer) 1
127.0.0.1:6379> sadd language java
(integer) 1
127.0.0.1:6379> sadd language sql
(integer) 1

# 集合遍历
127.0.0.1:6379> smembers language 
1) "java"
2) "c++"
3) "c"
4) "sql"


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 有序集合(sorted set)

Redis 有序集合类似于 Redis 集合,也是一组非重复的字符串集合。但是,排序集的每个成员都与一个分数相关联,该分数用于获取从最小到最高分数的有序排序集。虽然成员是独特的,但可以重复分数。

# 添加集合
127.0.0.1:6379> zadd books 1 book1
(integer) 1
127.0.0.1:6379> zadd books 2 book2
(integer) 1
127.0.0.1:6379> zadd books 3 book3
(integer) 1

# 遍历集合 符合 0-5的 score  
127.0.0.1:6379> zrangebyscore books 0 5
1) "book1"
2) "book2"
3) "book3"

127.0.0.1:6379> zadd books 100 book100
(integer) 1

# 遍历 索引位置 0-5 至多6个
127.0.0.1:6379> zrange books 0 5
1) "book1"
2) "book2"
3) "book3"
4) "book100"

# 遍历集合 符合 0-5的 score  
127.0.0.1:6379> zrangebyscore books 0 5
1) "book1"
2) "book2"
3) "book3"

# 遍历集合 符合 3-5的 score  
127.0.0.1:6379> zrangebyscore books 3 5
1) "book3"


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

# 位图 ( Bitmaps )

设置或者清除指定偏移量上的位



1
2

# 基数统计 ( HyperLogLogs )


1


<Vssue/>
1
2
Last Updated: 8/31/2021, 8:22:09 PM