什么是Redis
引用官方的介绍
redis是一个开源(bsd许可)的内存数据结构存储,用作数据库、缓存和消息代理。它支持数据结构,如字符串、哈希、列表、集合、带范围查询的排序集合、位图、超日志、带半径查询的地理空间索引和流。redis具有内置的复制、lua脚本、lru逐出、事务和不同级别的磁盘持久性,并通过redis sentinel和带有redis集群的自动分区提供高可用性。
根据官方介绍,可以抓住这么几个重点
1、内存
2、可用于数据库,缓存,消息代理
3、多种数据结构
4、支持脚本
5、事务
6、持久化
7、高可用
正是这几个原因,才让原来越多的人选择Redis。
Redis数据类型
1、String字符串:string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。string类型是Redis最基本的数据类型,一个键最大能存储512MB。
2、Hash(哈希):Redis hash 是一个键值(key=>value)对集合。Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象
3、List(列表):Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
4、Set(集合):Redis的Set是string类型的无序集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)
5、Zset(sorted set):有序集合)Redis zset 和set一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
还有两种类型:Bitmaps和HyperLogLogs,有想了解的建议去看官方文档:https://redis.io/topics/data-types-intro
Redis的持久化机制
我们知道redis是基于内存的数据库,一旦发生断电、重启等情况,就会造成内存的数据丢失,而持久化就是把数据写到硬盘上,即使发生重启,内存数据丢失,也可以从硬盘上恢复数据。
redis持久化有两种:RDB和AOF的介绍
RDB机制
RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储。
简单来说,就是周期性把所有数据写到硬盘上
优点
缺点
AOF机制
AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾.Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大。指定的时间间隔能对你的数据进行快照存储。
Redis的淘汰机制
Redis数据过期处理
Redis集群方案
Redis做缓存
在用redis做缓存时,需要注意的问题
1、缓存预热
2、缓存更新
3、缓存穿透
4、缓存雪崩
5、缓存降级
Redis做自增序列
Redis做排行榜
Redis做集合操作
Redis做session共享
Redis简单的消息队列
未完待续
来源:oschina
链接:https://my.oschina.net/whitegarnett/blog/3194802