Redis学习笔记
1. 特性
Redis是Remote Dictionary Server的缩写,它使用字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容。同大多数脚本语言中的字典一样,Redis字典中的键值除了可以是字符串,还可以是其他数据类型
Redis 支持的数据类型有字符串、散列、列表、集合、有序集合。
Redis数据库的所有数据都存储在内存中。在一台普通的笔记本电脑上,Redis可以在1秒内读写超过十万个键值。Redis也提供了持久化的支持,即将内存中的数据异步写入硬盘中,同时不影响继续提供服务。
Redis可作为缓存系统,并且可以为每个键设置生存时间,生存时间到期后键会自动删除;Redis还支持“发布/订阅”的消息模式,等等。
2. 基本类型
- 字符串类型 一个字符串类型键允许存储的数据的最大容量是512MB;
- 散列类型 散列类型的键值也是一种字典结构,其存储了字段和字段值的映射,但是字段值只能是字符串,不支持其他数据类型。散列类型适合存储对象;
- 列表类型 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的某一个字段;
- 集合类型 集合中每个元素都是不同的,并且没有顺序。一个集合类型set键可以存储2的32次方-1个字段;
- 有序集合类型 在集合类型的基础上,使得我们可以获得最高(最低)的前N个元素、指定分数范围内的元素等与分数有关的操作。
3. 常用命令
(0)启动 启动 Redis redis-server 检查Redis是否在工作 redis-cli
(1)字符串 SET name "Tom" GET name SET counter 1000 INCR counter DECR counter APPEND name "Jack" GET name
(2)散列类型 HMSET car name "volvo" color "black" price 20 HMGET car name HEXISTS car name HDEL car price
(3)列表类型 LPUSH lists redis LPUSH lists mogodb RPUSH lists mysql LPOP lists RPOP lists LRANGE lists 0 10
(4)集合类型 SADD letters a SADD letters a b c SREM letters c d SMEMBERS letters SADD setA 1 2 3 SADD setB 2 3 4 SDIFF setA setB
(5)有序集合
ZADD tutorials 1 redis 2 mongodb 3 mysql 3 mysql
ZRANGE tutorials 0 10 WITHSCORES
(6)事务
MULTI
INCR likes
INCR visitors
EXEC
(7)生存时间
SET session uuid11
EXPIRE session 20
TTL session
(8)排序
LPUSH mylist 4 2 6 1 7 3
SORT mylist
LPUSH mylistalpha a c e d c a
SORT mylistalpha ALPHA
(9)消息通知
PUBLISH redisChat "Redis is a great caching technique"
SUBSCRIBE redisChat
PUBLISH redisChat "Learn redis by tutorials point"
Redis的底层通信协议对管道(pipelining)提供了支持,通过管道可以一次性发送多条指令并在执行完成后一次性将结果返回,当一组命令中每条命令不依赖于之前命令的执行结果时就可以将这组命令一起通过管道发出,管道可以减少客户端与Redis的通信次数来实现降低往返时延累计值的目的。