Redis 特性
Redis具有速度快、持久化、多钟数据结构、支持多种编程语言、功能丰富、简单、主从复制、高可用、分布式等特性,广泛用于缓存系统、排行版、计数器、社交网络、消息队列系统、实时系统、持久化数据等场景。
Redis 数据类型
Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。
键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、有序集合、散列表。
如下图所示,左边的KEY只能是字符串类型,右边的VALUE分为5种类型。
5中数据类型的比较如下:
STRING
常用语法
1
2
3
4
5
6
7
8
9
10 1> set hello world
2OK
3> get hello
4"world"
5> del hello
6(integer) 1
7> get hello
8(nil)
9
10
应用场景:缓存、分布式锁、计算器
LIST
常用语法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 1> rpush list-key item 添加
2(integer) 1
3> rpush list-key item2
4(integer) 2
5> rpush list-key item
6(integer) 3
7
8> lrange list-key 0 -1 查看链表中所有值
91) "item"
102) "item2"
113) "item"
12
13> lindex list-key 1 查看链表索引1的值
14"item2"
15
16> lpop list-key 删除链表头的值
17"item"
18
19> lrange list-key 0 -1
201) "item2"
212) "item"
22
23
SET
常用语法
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 1> sadd set-key item 添加
2(integer) 1
3> sadd set-key item2
4(integer) 1
5> sadd set-key item3
6(integer) 1
7> sadd set-key item
8(integer) 0
9
10> smembers set-key 查看set所有值
111) "item"
122) "item2"
133) "item3"
14
15> sismember set-key item4 查看set中是否有某个值
16(integer) 0
17> sismember set-key item
18(integer) 1
19
20> srem set-key item2 删除某值
21(integer) 1
22> srem set-key item2
23(integer) 0
24
25> smembers set-key
261) "item"
272) "item3"
28
29
HASH
常用语法
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 1> hset hash-key sub-key1 value1 添加
2(integer) 1
3> hset hash-key sub-key2 value2
4(integer) 1
5> hset hash-key sub-key1 value1
6(integer) 0
7
8> hgetall hash-key 查看所有值
91) "sub-key1"
102) "value1"
113) "sub-key2"
124) "value2"
13
14> hdel hash-key sub-key2 删除
15(integer) 1
16> hdel hash-key sub-key2
17(integer) 0
18
19> hget hash-key sub-key1 获取
20"value1"
21
22> hgetall hash-key
231) "sub-key1"
242) "value1"
25
26
ZSET
常用语法
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 1> zadd zset-key 728 member1 添加
2(integer) 1
3> zadd zset-key 982 member0
4(integer) 1
5> zadd zset-key 982 member0
6(integer) 0
7
8> zrange zset-key 0 -1 withscores 查看所有域和值
91) "member1"
102) "728"
113) "member0"
124) "982"
13
14> zrangebyscore zset-key 0 800 withscores
151) "member1"
162) "728"
17
18> zrem zset-key member1 删除
19(integer) 1
20> zrem zset-key member1
21(integer) 0
22
23> zrange zset-key 0 -1 withscores
241) "member0"
252) "982"
26
27