Redis常用技术方案

大兔子大兔子 提交于 2020-03-14 16:45:19

什么是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简单的消息队列

未完待续

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!