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