一、Redis简介

是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求。(区别于MYSQL的二维表格的形式存储)。和Memcache类似,但是很大程度上拟补了Memcache的不足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或者重启,内存清空,数据丢失,所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修改操作过的写入追加的记录文件,实现数据的持久化。

二、Redis特点

原子。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
支持多种数据结构:String、list、hash、set(集合)、zset(有序集合)
持久化,主从复制(集群)
提供了键过期功能,可以用来实现缓存
提供了发布订阅功能,可以用来实现消息系统
支持Lua脚本功能,可以利用Lua创造出新的redis命令
提供简单的事务功能,能再一定程度上办证事务特性
提供了流水线(pipeline)功能,这样客户端能将一批命令一次性传到redis,减少了网络的开销

优点:

  对数据高并发读写

  对海量数据的高效率存储和访问

  对数据的可扩展行和高可用性

缺点:

  Redis处理简单

  无法做到太复杂的关系数据库模型

三、Redis与Memcache的区别

1、Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过Memcache还可用于缓存其他东西,例如图片、视频等等。

2、Redis不仅仅支持简单的k-v类型的数据,同时还提供list、set、hash等数据结构的存储。

3、虚拟内存--Redis当物理内存用完时,可以将一些很久没用到的value交换到磁盘

4、过期策略--Memcache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如expire设定,例如expire name 10

5、分布式--设定Memcache集群。利用magent做一主多从;Redis可以一主多从,也可以一主一从。

6、存储数据安全--Memcache挂掉后,数据就没有了;Redis可以定期保存到磁盘(持久化)

7、灾难恢复--Memcache挂掉后,数据不可恢复;Redis数据丢失后可以通过AOF恢复

8、Redis支持数据的备份,即master-slave模式的数据备份。

四、Redis书读快的原因

1、Redis是纯内存数据库,一般都是简单的存取操作

2、Redis采用了单线程模型,保证了每个操作的原子性,减少了线程的上下文切换和竞争。

3、Redis采用自己实现的事件分离器,效率比较高,内部采用非阻塞的执行方式,吞吐能力比较大。

五、Redis的持久化

Redis提供两种持久化方式:RDB和AOF,即可以用两种策略将内存的数据保存在硬盘中,这样就保证了数据的可持久性。

六、Redis的应用场景

1、数据缓存(提高访问性能)

2、会话缓存

3、排行榜

4、计数器

等等

Redis学习之路(一)Redis简介的更多相关文章

  1. Redis 学习之路 (010) - redis命令手册

    Redis 键(key) 命令 命令 描述 Redis DEL 命令 该命令用于在 key 存在是删除 key. Redis Dump 命令 序列化给定 key ,并返回被序列化的值. Redis E ...

  2. Redis 学习之路 (011) - redis 多数据库

    一台服务器上都快开启200个redis实例了,看着就崩溃了.这么做无非就是想让不同类型的数据属于不同的应用程序而彼此分开. 那么,redis有没有什么方法使不同的应用程序数据彼此分开同时又存储在相同的 ...

  3. Redis——学习之路四(初识主从配置)

    首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...

  4. Redis——学习之路三(初识redis config配置)

    我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息.     ...

  5. Redis——学习之路二(初识redis服务器命令)

    上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息   s ...

  6. Redis学习之路(000)- 目录

    本文是博主学习整理网上大神的文件以及自学的心得. Redis学习之路(000)- 目录 Redis学习之路(001)- Redis介绍以及安装(Linux) Redis学习之路(002)- Ubunt ...

  7. C# Redis学习系列三:Redis配置主从

    Redis配置主从 主IP :端口      192.168.0.103 6666 从IP:端口       192.168.0.108 3333 配置从库 (1)安装服务: redis-server ...

  8. redis 学习(1)-- redis 安装与启动

    redis 学习(1)-- redis 安装与启动 redis 特性 关于 redis 的介绍网上已经有很多信息了,这里我就不在详细说明了.介绍一下几个鲜明特性: 1.速度快 官方称可以达到10W的q ...

  9. redis学习教程一《Redis的安装和配置》

    redis学习教程一<Redis的安装和配置> Redis的优点 以下是Redis的一些优点. 异常快 - Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执 ...

  10. C# Redis学习系列二:Redis基本设置

    上一篇:C# Redis学习系列一:Redis的认识.下载.安装.使用 一.redis 设置密码 使用下载好的 redis-cli.exe 指令: 1.设置密码: config set require ...

随机推荐

  1. Shiro remeberMe反序列化漏洞复现(Shiro-550)

    Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能.Shiro框架直观.易用,同时也能提供健壮的安全性.在Apache Shiro编号为550的 issu ...

  2. 实现一个类型判断函数,需要鉴别出基本类型、function、null、NaN、数组、对象?

    只需要鉴别这些类型那么使用typeof即可,要鉴别null先判断双等判断是否为null,之后使用typeof判断,如果是obejct的话,再用Array.isArray判断是否为数组,如果是数字再使用 ...

  3. XML文件格式

    首行是需要对xml版本声明<?xml version="1.0" ecoding="UTF-8"?> 语言可根据需要修改 在编写xml的几个注意点 ...

  4. Deep Learning with Differential Privacy

    原文链接:Deep Learning with Differential Privacy abstract:新的机器学习算法,差分隐私框架下隐私成本的改良分析,使用非凸目标训练深度神经网络. 数学中最 ...

  5. 题解-CF1065E Side Transmutations

    CF1065E Side Transmutations \(n\) 和 \(m\) 和 \(k\) 和序列 \(b_i(1\le i\le m,1\le b_i\le b_{i+1}\le \frac ...

  6. 四、git学习之——远程仓库

    Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上.怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以"克隆"这个原始版本库,而且每台机器的版 ...

  7. apidoc学习(接口文档定义取代word)

    apidoc的安装,参考:https://blog.csdn.net/qq_36386771/article/details/82149848 生产文档,需要先编写一个apidoc.json对接口文档 ...

  8. 某宝的微信小程序源码合集

    这是我在某宝买的小程序源码合集.能用的我用不到.. 我用的到的有的有没后端.仅供个人参考,严禁侵权或商业用途! 下载地址:https://pan.baidu.com/s/1cQEQ17LdN-7hxD ...

  9. 云小课 | 需求任务还未分解,该咋整!项目管理Scrum项目工作分解的心酸谁能知?

    温馨提醒:本文约3000字,需要阅读5分钟,共分为8个部分,建议分段阅读! 软件开发过程中,从产品概念形成到产品规划.往往要做详细的需求分析和项目规划等,因此,选对一款项目管理工具对开发者就显得尤为重 ...

  10. eclipse提示JVM版本太低

    解决方案:去eclipse的安装路径找到eclipse.ini文件,然后在头部指定JVM的版本(第一第二行) -vm C:/Program Files/Java/jdk-11.0.9/bin -sta ...