Redis支持的类型:

  String,List,Map,Set,Sorted set

Redis的持久化:

  1、Redis DataBase (RDB): RDB是在某个时间点将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件,达到数据恢复。

    优点:使用单独子进程来进行持久化,主进程不会进行任何IO操作,保证了redis的高性能

    缺点:RDB是间隔一段时间进行持久化,如果持久化之间redis发生故障,会发生数据丢失。所以这种方式更适合数据要求不严谨的时候

  2、Append Only File (AOF): 将“操作 + 数据”以格式化指令的方式追加到操作日志文件的尾部,在append操作返回后(已经写入到文件或者即将写入),才进行实际的数据变更,“日志文件”保存了历史所有的操作过程;当server需要数据恢复时,可以直接replay此日志文件,即可还原所有的操作过程。AOF相对可靠,它和mysql中bin.log、apache.log、zookeeper中txn-log简直异曲同工。AOF文件内容是字符串,非常容易阅读和解析。

    优点:可以保持更高的数据完整性,如果设置追加file的时间是1s,如果redis发生故障,最多会丢失1s的数据;且如果日志写入不完整支持redis-check-aof来进行日志修复;AOF文件没被rewrite之前(文件过大时会对命令进行合并重写),可以删除其中的某些命令(比如误操作的flushall)。
    缺点:AOF文件比RDB文件大,且恢复速度慢。

Redis主从面临的问题:

    1、主从机制,可以提供读写分离,分担读的请求压力。但是主只有一个,存在单点故障的问题。  

哨兵机制面临的问题:

  1、解决了主从的单点问题,但是主服务器只有一个,写性能不足。

Redis集群:终极解决方案 ,解决了主从机制的单点问题,和哨兵机制的主服务器唯一,写性能问题。

Redis为什么这么快:

  1、 纯内存操作。

  2、单线程,避免线程切换的开销。

  3、使用I/O多路复用机制。

缓存面临的问题:

  1、缓存雪崩

    问题描述:缓存同一时间大面积失效,当请求到达的时候,导致所有的请求都怼到数据库上,导致数据库链接异常。

    解决方案: a、缓存预热的时候,设置随机过期时间。

          b、利用互斥锁,缓存失效的时候,先获取互斥锁,得到锁再去操作数据库,否则休眠等待锁。(缺点:吞吐量下降)

  2、缓存击穿

    问题描述:黑客故意去请求缓存中不存在的数据,导致所有的请求都怼到数据库上,从而数据库连接异常。

    解决方案: a、利用互斥锁,缓存失效的时候,先获取互斥锁,得到锁再去操作数据库,否则休眠等待锁。

          b、黑名单机制,禁止黑名单中的ip地址访问。

  3、缓存与数据库双写一致性问题

    问题描述:请求A为读请求,请求B为修改请求,它们请求的为同一个东西。请求B先到达,修改数据库数据成功,未来得及更新缓存。此时请求A到达,获取缓存中的脏数据。

    解决方案:先删除缓存,再更新数据库,最后再更新缓存。

  4、缓存的并发竞争问题。

    问题描述:同时有多个子系统去设置同一个key。

    解决方案: a、分布式锁,得到锁才进行操作,其它线程等待。

          b、使用队列,将set操作,变成串行访问。

Redis 采用的是定期删除+惰性删除策略、内存淘汰策略

  1、定期删除:固定时间内,随机抽取Redis内的数据,进行过期检查。

  2、惰性删除:当获取该key的时候,再判断是否过期。

  3、内存淘汰策略:在 redis.conf 中有一行配置:maxmemory-policy volatile-lru   就是配置内存淘汰的策略,用以补充定期删除+惰性删除的不足。

  allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的 Key。推荐使用。(其余的分别是:noeviction、allkeys-random、volatile-lru、volatile-random、volatile-ttl)

    

Redis-概述的更多相关文章

  1. redis 概述、windows版本下载启动访问退出安装、中文乱码、RedisDesktopManager下载

    redis 概述 redis的key是string类型的:value有多种类型,但放入的不是特定类型数据,添加的都是string,只是redis把这些值组织成了各种数据结构.key和相应的值都是str ...

  2. Redis概述以及Linux安装

    Redis 概述 Redis是什么 Redis,Remote Dictionary Server,远程字典服务.是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.key-v ...

  3. [Redis]Redis 概述及基本使用规范.

    1 nosql的简介 1.1 nosql简介 随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经显得力不从心,暴露 ...

  4. Redis概述与基本操作

    redis教程 概述 redis是一种nosql数据库,他的数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,并且他比memcached支持更多的数据结构(strin ...

  5. redis 概述及部署 安装php和python客户端

    概述 Redis是一个基于key-value键值对的持久化数据库存储系统.redis支持的数据存储类型比memcached更丰富,包括strings(字符串),lists(列表),sets(集合)和s ...

  6. 跟我一起学Redis之Redis概述

    背景 技术的更新迭代,是程序员最最最头大的事,总是在每个网络角落中有感慨声:学不动啦: 其实新技术并不是凭空而出,而是随着业务推进.数据驱动.技术积累促使开发者的不断探索和实践,最终横空出世--&qu ...

  7. Redis学习(1)---Redis概述

    什么是NoSQL 概述 NoSQL:Not Only SQL,意思不仅仅是SQL,它是属于非关系型数据库.那什么是关系型数据库?数据结构是一种有行有列的数据库. NoSQL数据库是为了解决高并发.高可 ...

  8. Redis概述

    1.       Redis是使用内存存储(in-momory)的非关系型数据. 2.       Redis的数据存储选项共有5种:字符串.列表.集合.散列表.有序集合. 3.       Redi ...

  9. redis学习(2)--- Redis概述

    一.Redis介绍 高性能键值对数据库,支持的键值对数据类型: 字符串类型 列表类型 有序集合类型 散列类型 集合类型 官方测试读写速度: 测试50个并发程序,执行10万次请求 读的速度:每秒11万次 ...

  10. redis概述(一)

    什么是NoSql? 为了解决高并发.高可用.高可扩展,大数据存储等一系列问题而产生的数据库解决方案,就是NoSql. NoSql,叫非关系型数据库,它的全名Not only sql.它不能替代关系型数 ...

随机推荐

  1. objectARX创建 PaletteSet 停靠面板示例

    objectARX创建 PaletteSet 停靠面板示例 图文By edata ,转载注明出处 http://www.cnblogs.com/edata 部分代码参考张帆<AutoCAD Ob ...

  2. 打开SQL Server2000企业管理器时候提示“MMC 无法创建管理单元 ”

    今天上午在打开SQL Server 2000 企业管理器时候提示“MMC 无法创建管理单元”错误.

  3. CSRF漏洞原理说明与利用方法

    翻译者:Fireweed 原文链接:http://seclab.stanford.edu/websec/ 一 .什么是CSRF Cross-Site Request Forgery(CSRF),中文一 ...

  4. Unable to access 'default.path.data' (/var/lib/elasticsearch)

  5. byte转文件流 下载到本地

    此方法将byte类型文件转为文件流保存到本地 byte 经过BASE64Decoder 进行编码之后的类型 所以需要解码 防止出现乱码及文件损毁 /** * byte 转文件 下载到本地 * @par ...

  6. Java中常用到的文件操作那些事(二)——使用POI解析Excel的两种常用方式对比

    最近生产环境有个老项目一直内存报警,不时的还出现内存泄漏,导致需要重启服务器,已经严重影响正常服务了.获取生成dump文件后,使用MAT工具进行分析,发现是其中有个Excel文件上传功能时,经常会导致 ...

  7. 编程开发之--java多线程学习总结(6)

    5.测试 package com.lfy.ThreadsSynchronize; public class Test { public static void main(String[] args) ...

  8. 【转载】SSAS-MDX#001 - MDX 基本结构

    1. MDX 的基本结构 - MDX 的基本结构有三种: Members, Tuple 和 Set    2. Members - 指的是维度树上的一个节点, 这里有一点需要指出, 量度也是一个特殊的 ...

  9. ConcurrentHashMap相关知识点

    ConcurrentHashMap涉及的知识点:HashMap,HashTable,UnSafe,CAS,数组+链表,Segment,ReentrantLock(非公平锁,公平锁),红黑树. 为什么要 ...

  10. Ubuntu18.04配制阿里巴巴的源

    配制阿里巴巴的源步骤 使用阿里巴巴的开源镜像:https://opsx.alibaba.com/mirror 然后选择ubuntu的帮助选项,复制ubuntu18.04镜像源 设置root账户密码: ...