redis

作者: 2636d0cefc2f | 来源:发表于2019-03-03 23:04 被阅读0次

redis介绍(是什么,做什么,怎么用)

是:是一个使用ansi c语言编写、遵守bsd协议、支持网络、可基于内存亦可持久化的【日志型】、key-value非关系型数据库。

做:

用:

1、支持的数据类型:

string,格式:set key value

hash,格式:hmset name key1 value1 key2 value2(是一个建值对【key 》=value】)

list,格式:lpush name value

set,格式:sadd name value(无序集合,不允许重复成员)

zset,格式:zadd……(有序集合,不允许重复成员)

2、redis持久化

是什么:把内存数据写入磁盘

怎么做:rdb(默认),核心函数rdbsave(生成rdb文件)和rdbload(从文件加载内存)

aof,核心函数flushAppendOnlyFilr,两个步骤,a:将aof_buf中的缓存写入aof文件;b、调用fsync或fdatasync将aof文件写入磁盘。只从服务端写入磁盘中的aof文件。

优缺点:aof更新频率高,安全性高,rdb性能好,如果配置了两个,优先加载aof。

3、redis的架构模式

a、单机版,主机主机从主redis获取数据,内存容量有限,处理能力有限,无法高可用

b、主从复制,可根据一个redis服务器来创建多个该服务器的复制品,复制品数据与主服务器相同,可保证一台宕机不影响其他,并且程序可请求不同的服务器,提高效率。

c、哨兵,加入redis sentinel,监控主服务器,在主下线后进行故障转移,在某个redis出问题时,向管理员和应用程序发通知,可进行自动故障转移

d、集群(proxy型),在哨兵架构上加入Twemproxy轻量级代理服务器

e、集群(直连型),redus-cluster采用无中心结构,每个节点保存数据和整个集群状态,少了proxy层,便于维护,节点间数据共享,可动态调整数据分布,节点可扩展至1000个,可动态添加删除,部分节点不可用时,集群仍可用,出现故障时,通过投票机制完成slave到master的角色提升。【但是资源隔离性差,容易相互影响,异步复制,不能做到实时一致。】

4、缓存穿透:一般的缓存系统按照key去缓存查询,未查到则转后台,但是如果故意大量查找不存在的key值,会导致后端系统压力过大。

5、预防缓存穿透:a、对结果为空的情况也进行缓存,但可将缓存时间设置短。b、对一定不存在的key值进行过滤,比如特殊字符串,也可预先保存所有会存在的key值在容器内,通过在容器中查找过滤。

6、缓存雪崩:当缓存服务器重启或集中失效,则会造成后端压力过大导致系统崩溃。

6、避免雪崩:a、在缓存失效后,通过加锁或者队列来控制度数据库写缓存的线程数量。b、做二级缓存,a1为主,a2为拷贝,a2失效时间设置为长期,确保其一直工作。c、不同的key设置不同的过期时间,避免同一时期失效。

相关文章

网友评论

      本文标题:redis

      本文链接:https://www.haomeiwen.com/subject/ucsvuqtx.html