Redis简介以及和其他缓存数据库的区别

2023-11-11

转载:https://blog.csdn.net/xlgen157387/article/details/60761232

Redis简介

Redis 是一个开源的内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。

它支持多种类型的数据结构,如字符串(Strings),散列(Hashes),列表(Lists),集合(Sets),有序集合(Sorted Sets或者是ZSet) 与范围查询, Bitmaps,Hyperloglogs 和 地理空间(Geospatial)索引半径查询。 其中常见的数据结构类型有String、List、Set、Hash、ZSet这5种

Redis 内置了复制(Replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(Transactions) 和不同级别的磁盘持久化(Persistence), 并通过 Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(High Availability)。

Redis也提供了持久化的选项,这些选项可以让用户将自己的数据保存到磁盘上面进行存储。根据实际情况, 可以每隔一定时间将数据集导出到磁盘(快照),或者追加到命令日志中(AOF只追加文件),他会在执行写命令时,将被执行的写命令复制到硬盘里面。您也可以关闭持久化功能,将Redis作为一个高效的网络的缓存数据功能使用。

Redis不使用表,他的数据库不会预定义或者强制去要求用户对Redis存储的不同数据进行关联。

数据库的工作模式按存储方式可分为:硬盘数据库和内存数据库。Redis 将数据储存在内存里面,读写数据的时候都不会受到硬盘 I/O 速度的限制,所以速度极快。

(1)硬盘数据库的工作模式:

这里写图片描述

(2)内存数据库的工作模式:

这里写图片描述

资源列表:

官网地址:https://redis.io/

中文官方地址:http://www.redis.cn/

Redis学习资源:加QQ群获取-523277336

Redis 优势和优点

(1)性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

(2)丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

(3)原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

(4)丰富的特性 – Redis还支持 publish/subscribe(发布/订阅), 通知, key 过期等等特性。

Redis 与其他 key - value 缓存产品有以下三个特点:

(1)Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

(2)Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

(3)Redis支持数据的备份,即master-slave模式的数据备份。

Redis和Memcached的区别

Redis常被拿来和高性能键值缓存服务器Memcached进行对比:这两者都可以用来存储键值对,彼此的性能也相差无几,但是Redis相对支持更多的数据类型,除了支持键值对之外,还支持list,set,zset,hash等数据结构的存储,而Memcached只能存储普通的字符串键。

Memcached用户只能通过APPEND的方式将数据添加到已有的字符串的末尾,并将这个字符串当做列表来使用。但是在删除这些元素的时候,Memcached采用的是通过黑名单的方式来隐藏列表里的元素,从而避免了对元素的读取、更新、删除等操作。相反的Redis的List和Set允许用户直接添加和删除元素。

Redis和Memcached的其他区别如下:

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

2、Redis不仅仅支持简单的K/V类型的数据,同时还提供List,Set,Hash等数据结构的存储;

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

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

5、分布式–设定Memcached集群,利用magent做一主多从;Redis可以做一主多从。都可以一主一从;

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

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

8、Redis支持数据的备份,即Master-Slave模式的数据备份;

9、应用场景不一样:Redis出来作为NoSQL数据库使用外,还能用做消息队列、数据堆栈和数据缓存等;Memcached适合于缓存SQL语句、数据集、用户临时性数据、延迟查询数据和Session等。

Redis和其他数据库的区别

这里写图片描述


参考文章:

1、http://www.cnblogs.com/timothy-lai/p/5786502.html

2、http://www.runoob.com/redis/redis-intro.html

3、Redis in Action - [美] Josiah L.Carlsono

4、http://www.tuicool.com/articles/Rz2uIzb

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis简介以及和其他缓存数据库的区别 的相关文章

  • Spring Redis 排序键

    我在 Redis Spring Data Redis 中有以下键 localhost gt Keys 1 id 1 Name C5796 Site DRG1 2 id 2 Name CX1XE Site DG1 3 id 3 Name C5
  • 由于配置文件错误,无法启动 Redis 服务器

    我刚刚按照此处的说明安装了 Redis http redis io download http redis io download 当我运行 redis server redis conf 时出现以下错误 FATAL CONFIG FILE
  • 使用环境变量在 redis.conf 中设置动态路径

    我有一个环境变量MY HOME其中有一个目录的路径 home abc 现在 我有一个redis conf文件 我需要像这样设置这个路径 redis conf pidfile MY HOME local var pids redis pid
  • Redis 在键过期时更新排序集

    我有一个 Redis 服务器 其中包含一组键值对和一个排序集 提供这些键值对的键的索引 键值对可以进入 已完成 状态 此时需要在 1 小时后删除它们 这可以通过在键上设置到期时间来简单地实现 但从排序集中清除它们似乎更成问题 我可以有一个过
  • Web API 缓存 - 如何使用分布式缓存实现失效

    我有一个 API 目前不使用任何缓存 我确实有一个正在使用的中间件 它可以生成缓存标头 Cache Control Expires ETag Last Modified 使用https github com KevinDockx HttpC
  • 集合成员的 TTL

    Redis 是否可以不为特定键而是为集合的成员设置 TTL 生存时间 我正在使用 Redis 文档提出的标签结构 数据是简单的键值对 标签是包含与每个标签对应的键的集合 例如 gt SETEX id id 1 100 Lorem ipsum
  • JedisPoolConfig 不可分配给 GenericObjectPoolConfig

    我有一个基于 Spring 的 Java Web 应用程序托管在 Heroku 上 我正在尝试使用 Redis 实现来利用 Spring 缓存抽象 当服务器启动时 我收到一条错误消息 Type redis clients jedis Jed
  • 在 Redis 中存储 IP 范围

    我有很多不同提供商的 IP 范围 例如 P1 192 168 1 10 192 168 1 50 192 168 2 16 192 168 2 49 P2 17 36 15 34 17 36 15 255 P3 我将此 IP 转换为 int
  • Redis 客户端忽略其上设置的配置选项并尝试连接到默认 IP 127.0.01

    在AWS中 我使用ElastiCache Redis服务器并使用节点作为后端和 promise redis 包 这就是我尝试连接到我的 redis 服务器端点的方法 client redis createClient host my red
  • 为什么Redis SET性能优于GET?

    根据Redis基准 http redis io topics benchmarkss Redis 可以执行 100 000 SET 操作 秒和 80 000 GET 操作 秒 Redis 是一种内存数据库 这似乎令人惊讶 因为通常人们会认为
  • 如果没有过期的内容,Redis maxmemory-policy volatile-lru 是否会被驱逐?

    我有一个 redis 服务器 设置了maxmemory policy set to volatile lru 文档表明 当达到内存限制时 这将从设置过期的条目集中逐出 在这种情况下 redis 是否只驱逐过期的项目 如果内存中的所有内容都设
  • Redis如何存储关联数组?设置、散列还是列表?

    我对 Redis 的所有可用存储选项有点困惑 我想做一些简单的事情 并且不想过度设计它 我正在与phpredis and Redis v2 8 6 我有一个需要存储的简单关联数组 我还需要能够通过其键检索项目并循环遍历所有项目 a arra
  • 如何暂停或恢复 celery 任务?

    我的项目中有一项要求 客户可以暂停或恢复正在挂起的流程 而不是流程流程 我在用网络套接字显示芹菜任务结果 但在暂停 恢复时我不明白如何设计代码 我想到的唯一方法就是revoke暂停请求中的任务 同时保留数据撤销的过程在缓存中 并稍后在res
  • 使用 MongoDB 作为我们的主数据库,我应该使用单独的图数据库来实现实体之间的关系吗?

    我们目前正在为一家专业公司内部实施类似 CRM 的解决方案 由于存储信息的性质以及信息的不同值和键 我们决定使用文档存储数据库 因为它完全适合目的 在本例中我们选择 MongoDB 作为此 CRM 解决方案的一部分 我们希望存储实体之间的关
  • node_redis CONFIG SET 命令

    我目前正在使用 redis 编写一个应用程序 但我遇到了 node redis 库的问题 特别是我无法弄清楚如何从 node redis 中使用 redis 命令 我已经尝试了以下所有 client send command CONFIG
  • 如何将redis中的数据保存到磁盘中的文件并读回redis?

    我可以在程序中写入 Redis 并从中读取 但是 关闭服务器后 我猜数据已从内存中删除 如何将redis中的数据保存到磁盘中 以便下次打开redis时 它可以打开数据 让控制台程序读取它吗 如果我的电脑突然断电重启 redis可以恢复状态吗
  • lua找不到模块插座

    我正在尝试使用 lua 从 nginx 访问 redis 值 当我在命令行上执行 lua 文件时 一切正常 我可以读取值并将值写入 redis 但是当我尝试通过访问写入 access by lua 指令的位置来从 nginx 执行相同的文件
  • 设置“slave-read-only no”是否会使从站确认与主站的每个哈希查找?

    我想配置从站以启用写入 slave read only no 用例是启用临时缓存 然而 文档中的这一段让我感到担忧 通常 从节点会将客户端重定向到给定命令中涉及的哈希槽的权威主节点 但是客户端可以使用从节点 以便使用 READONLY 命令
  • 集群故障转移

    我知道我问的是有关集群故障转移的一些非常明显的问题 我在 redis io 上读到 如果任何主集群节点发生故障 它将影响其他主节点 直到从属节点接管 在我的结构中 我没有定义任何奴隶 只是与 3 个主人一起工作 我正在考虑修改 redis
  • 如何在redis中使用python删除排序集中的项目

    如何使用 python 删除排序集中大于某个值的项目 key foo pipe redis master conn pipeline pipe zadd key 1 a pipe zadd key 2 b pipe zadd key 3 c

随机推荐

  • “QtCore/qglobal.h”: No such file or directory错误的解决

    QtCore qglobal h No such file or directory错误的解决
  • java8 StreamAPI串行流和并行流

    串行流与并行流 创建一个1 10的list List
  • 信息泄露-小白初识

    生活在网络化 信息化的今天 我们时不时的会听到某某国家 某某网站泄露了多少亿的用户数据 这些数据包括个人的姓名 联系电话 家庭住址 甚至更恶劣的包括个人银行卡账号 宾馆以及网购记录等 如此高速的网络让我们享受到了便利 恐怖的数据泄露事件却另
  • 大数据数据倾斜问题

    数据倾斜 数据倾斜是我们在处理大数据量问题时绕不过去的问题 也是在面试中几乎必问的考点 正常的数据分布理论上都是倾斜的 就是我们所说的 二八原理 80 的财富集中在20 的人手中 80 的用户只使用20 的功能 20 的用户贡献了80 的访
  • SVN 报错 sqlite[S11]: database disk image is malformed

    http blog csdn net yeshencat article details 73741123 蛋碎的开机一会儿 想着把第一件事儿就是更新svn svn正更新 发现鼠标移动不了 还以为电脑USB端口供电不足 结果特么电脑死机 再
  • 前端解决多个跨域问题

    前端解决多个跨域问题 前言 虽然一直是前后端分离 但是没了解过跨域问题 直接是vue config js中的内容直接搬过来改改 但是后来调用了下百度语音拟合的api接口发现 有跨域问题 这个肯定不能动用后端了就查了下资料改了下proty代理
  • GDB调试技巧

    工具程序gdb是GNU调试器 为了能调试程序 编译时必须指定GCC的 g选项将源码与可执行代码联系起来 将程序载入调试器 fibonacci c int current int next int nextnext void setstart
  • idea运行项目报错Cannot run program “C:\Program Files\Java\jdk1.8.0_121\bin\java.exe......解决办法

    在环境变量都配置完好的情况下 基本就是idea的配置除了问题可以检查以下几点 1 SDKs检查 2 路径检查 3 项目配置检查
  • 利用C#实现条形图、饼图的绘制(二)

    继前一篇文章提到关于使用C 绘制条形图的思路之后 这里接着介绍绘制饼图的思路 本篇文章所涉及的源代码是在前面的基础上完成的 在本文的最后 将会提供本实例的完整代码下载地址 有兴趣的朋友可以下载 言归正传 开始介绍饼图的绘制 其实 饼图的绘制
  • js 获取本月、本周、本年年初

    timeSlotChange val let startTime endTime let now new Date 当前日期 var nowDayOfWeek now getDay 今天本周的第几天 var nowDay now getDa
  • apache+mod_perl防盗链

    原文地址 http blog csdn net zjl410091917 article details 7288096 写这个帖子完全是无意中搜索modperl应用时候发现了 具体可以参见 http pyh7 spaces live co
  • 51单片机定时器的原理与使用

    定时器是单片机的重要功能模块之一 在检测 控制领域有广泛应用 定时器常用作定时时钟 以实现定时检测 定时响应 定时控制 并且可以产生ms宽的脉冲信号 驱动步进电机 定时和计数的最终功能都是通过计数实现 若计数的事件源是周期固定的脉冲则可实现
  • 使用MyBatisPlus+Spring实现声明式事务

    使用MyBatisPlus Spring实现声明式事务 事务介绍 数据库的事务 Transaction 是一种机制 一个操作序列 包含了一组数据库操作命令 事务把所有的命令作为一个整体一起向系统提交或撤销操作请求 即这一组数据库命令要么都执
  • 安装mongo以及相关扩展

    背景 看到了一个nodejs的对mongo操作的课程 于是想学一下 1 于是打算先在自己的vps上安装一个mongodb https docs mongodb org manual tutorial install mongodb on l
  • socket通信原理

    参考博客 https www cnblogs com wangcq p 3520400 html
  • python导入csv文件画折线图

    导包 import matplotlib pyplot as plt import pandas as pd import time data pd read csv filename 导入csv文件 y data number T val
  • 软件开发是一门艺术还是工程

    软件开发是一门艺术 艺术是没有具体形象的 一名艺术家必须要擅长创新 工程则是循规蹈矩的 一名工程师则必须要守规矩 而软件开发之所以可以称为一门艺术而不是工程师因为软件要满足用户的需求并不是循规蹈矩的 不同的软件开发者对做一个相同的软 件开发
  • 制作ubuntu server启动盘

    Mac 查看磁盘列表 gt gt gt diskutil list 格式化磁盘 gt gt gt diskutil partitionDisk dev disk2 MBR FAT32 UNTITLED 0b 推出磁盘 gt gt gt di
  • 练习--输出一个7行的菱形

    练习 输出一个7行的菱形 对于菱形的输出 在编程的时候需要注意空格的输出和 号的输出 define CRT SECURE NO WARNINGS 1 include
  • Redis简介以及和其他缓存数据库的区别

    转载 https blog csdn net xlgen157387 article details 60761232 Redis简介 Redis 是一个开源的内存中的数据结构存储系统 它可以用作数据库 缓存和消息中间件 它支持多种类型的数