Redis入门01-简单了解

目录

Redis的发展历史

特性简介

数据类型

内存存储与持久化

功能丰富

简单稳定

应用场景

为啥用Redis



Redis的发展历史

Redis(Remote Dictionary Server)是一个高性能的键值存储系统,通常用作缓存、消息队列和分布式数据存储的解决方案。以下是Redis的发展历史(每一段中都涵盖了标签:轻量级键值存储、持久性和复制、分布式的数据分片和高可用、Sentinel自动故障切换、多线程和延迟队列、懒惰删除和集群自动重平衡):

  1. 2009年:创建和初期开发 Redis是由Salvatore Sanfilippo(也被称为Antirez)创建的。最早的版本于2009年发布。Redis最初是为提供快速、轻量级的键值存储解决方案而设计的。

  2. 2010年:稳定版发布 Redis在2010年发布了稳定版本1.0,此时已经引起了广泛的关注和使用。Redis的持久性、复制和分片功能逐渐加入。

  3. 2012年:Redis Cluster发布 2012年,Redis 2.8版本引入了Redis Cluster,这是一个分布式的Redis解决方案,支持数据分片和高可用性。

  4. 2015年:Redis发布3.0 Redis 3.0引入了Sentinel,这是一个用于监控和自动故障切换的工具,以提供更高的可用性。此版本还引入了新的二进制位操作和地理信息支持。

  5. 2018年:Redis发布5.0 Redis 5.0引入了多线程模型,以提高性能。它还引入了流数据结构、延迟队列以及其他新特性。

  6. 2021年:Redis发布6.0 Redis 6.0增加了更多的新功能,包括懒惰删除、集群自动重平衡等。此版本进一步增强了Redis的性能和功能。

特性简介

Redis是一种基于键值对(Key-value)的NoSql数据库。它以字典结构存储数据。

数据类型

redis中的value⽀持string(字符串)、hash(哈希)、 list(列表)、set(集 合)、zset(有序集合)、Bitmaps(位图)、 HyperLogLog、GEO(地理信息定位)等多种数据类型。

其中最常见的有5种数据类型应用场景:

  • string(字符串):缓存功能、计数、共享Session、限速(高并发场景下控制请求数量)

  • hash(哈希):缓存用户信息、缓存对象

  • list(列表):消息队列、文章列表

  • set(集 合):标签

  • zset(有序集合):用户点赞统计、用户排名

内存存储与持久化

所有数据都存放在内存中,持久化保存的同时读写能力非常出色,同时还能保证遭遇断电或者关机故障,内存数据不会“丢失”。

功能丰富

除了存储数据,还有设置键过期时间、发布订阅、处理事务、流水线、Lua脚本等功能

简单稳定

Redis提供了几十种不同编程语言的客户端库,都很好地封装了Redis的命令。

应用场景

Redis是一个高性能的内存数据库,常用于各种应用场景,特别适合需要快速、低延迟的数据存储和检索。以下是一些常见的Redis应用场景:

  1. 缓存:Redis最常见的用途之一是作为缓存层,用于存储经常访问的数据,以加速读取操作。它可以用于数据库查询结果、Web页面片段、API响应等。

  2. 会话存储:Redis可用于存储用户会话数据,以实现高可用性和快速的身份验证和授权。它可以替代传统的会话存储方式,如基于文件或数据库的存储。

  3. 消息队列:Redis支持发布/订阅模式,可用作轻量级消息队列系统。它用于异步通信、事件驱动架构和作业队列。

  4. 计数器和排行榜:Redis的原子性操作使其适合用于实时计数器和排行榜的构建。您可以轻松地更新计数器和排行榜,而无需担心竞态条件。

  5. 分布式锁:Redis可以用于实现分布式锁,以协调分布式系统中的并发访问,防止资源竞争和数据损坏。

  6. 地理空间数据:Redis支持地理位置数据的存储和查询,使其适合用于构建位置服务和地理信息系统。

  7. 实时分析:Redis支持多种数据结构,包括有序集合(Sorted Sets),可以用于实时数据分析和排名。

  8. 缓存穿透保护:Redis可用于防止缓存穿透,即防止恶意或无效的请求导致频繁的缓存未命中,以减轻后端负载。

  9. 限流和配额管理:Redis可以用于实现API限流和资源配额管理,以控制客户端访问频率。

  10. 分布式会话存储:在分布式系统中,Redis可以用于存储和管理会话数据,以实现跨多个服务的会话共享。

  11. 实时通信:Redis可以用作实时聊天应用程序的消息传递中间件,支持即时通信。

  12. 数据缓存:Redis可以用于缓存数据库查询结果,以减轻数据库负载,提高应用程序性能。

为啥用Redis

Redis速度非常快,单机就可以支撑每秒十几万的并发,是MySQL的几十倍。快的原因:

  • 完全基于内存操作

  • 单线程,避免切换和竟态竞争(5.0加入多线程,实际是针对队列使用多线程进行读写操作)

  • 非阻塞的IO多路复用机制

  • C语言实现,Redis大量优化了基础数据结构,性能极高

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/177126.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法专题】双指针—盛最多水的容器

一、题目解析 分析这个题目不难得出一个容积公式 二、算法原理 解法一:暴力枚举(超时) 套用上述的容积公式,使用两个for循环来枚举出所有可能的情况,再挑出最大值即可,但是这种写法会超时,导致…

06 # 手写 map 方法

map 的使用 map 自带循环功能&#xff0c;对数据中的元素进行加工&#xff0c;得到一个加工后的新数据 ele&#xff1a;表示数组中的每一个元素index&#xff1a;表示数据中元素的索引array&#xff1a;表示数组 <script>var arr [1, 3, 5, 7, 9];var result arr.ma…

X64指令基本格式

X64指令基本格式 1 REX Prefix结构2 REX prefix扩展位2.1 第一种&#xff0c;无SIB字节的内存寻址&#xff08;mod !11 &#xff09;2.2 第二种&#xff0c;寄存器到寄存器的寻址&#xff08;无内存操作数&#xff0c;mod11&#xff09;2.3 第三种&#xff0c;带SIB字节的内存寻…

栅栏密码fence cypher

f{_wi3_hlyk_lnceaonr_cirgu04fep} flag{you_kn0w_r4il_f3nce_cipher}

线段树 区间赋值 + 区间加减 + 求区间最值

线段树好题&#xff1a;P1253 扶苏的问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 区间赋值 区间加减 求区间最大。 对于区间赋值和区间加减来说&#xff0c;需要两个懒标记&#xff0c;一个表示赋值cover&#xff0c;一个表示加减add。 区间赋值的优先级大于区间加…

【AI视野·今日Sound 声学论文速览 第三十二期】Tue, 24 Oct 2023

AI视野今日CS.Sound 声学论文速览 Tue, 24 Oct 2023 Totally 20 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;nvas3d, 基于任意录音和室内3D信息合成重建不同听角&#xff08;位置&#xff09;处的新的声音。(from apple cmu) website: htt…

在职一年多,一个29岁软件测试工程师的心声

简单的先说一下&#xff0c;坐标西安&#xff0c;16届本科毕业&#xff0c;目前在跳槽&#xff0c;算上国庆节前的面试&#xff0c;一共有面试了5家公司&#xff08;因为不想请假&#xff0c;因此只是每个晚上去其他公司面试&#xff0c;所以面试的公司比较少&#xff09;其中成…

【394.字符串解码】

目录 一、题目描述二、算法原理三、代码实现 一、题目描述 二、算法原理 三、代码实现 class Solution { public:string decodeString(string s) {stack<string> s1;s1.push("");stack<int> s2;int i 0, n s.size();while (i < n){//1.如果是数字入…

css:transform实现平移、旋转、缩放、倾斜元素

目录 文档语法示例旋转元素 transform-rotate旋转过渡旋转动画 参考文章 文档 https://developer.mozilla.org/zh-CN/docs/Web/CSS/transform 语法 /* Keyword values */ transform: none;/* Function values */ transform: matrix(1, 2, 3, 4, 5, 6); transform: translate…

京东数据分析:2023年9月京东洗地机行业品牌销售排行榜

鲸参谋监测的京东平台9月份洗地机市场销售数据已出炉&#xff01; 9月份&#xff0c;洗地机市场的销售额增长。根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;9月京东平台上洗地机的销量为9.2万&#xff0c;销售额将近2.2亿&#xff0c;同比增长约9%。从价格上看&#…

Android NDK开发详解之Android.mk探秘

Android NDK开发详解之Android.mk探秘 概览基础知识变量和宏NDK 定义的 include 变量CLEAR_VARSBUILD_EXECUTABLEBUILD_SHARED_LIBRARYBUILD_STATIC_LIBRARYPREBUILT_SHARED_LIBRARYPREBUILT_STATIC_LIBRARY 目标信息变量TARGET_ARCHTARGET_PLATFORMTARGET_ABI 模块描述变量LOC…

【组件】身份证卡片

效果展示 组件代码 <div class"cardOneRoot"><img :src"itemInfo.psnPicUrl ? itemInfo.psnPicUrl : " alt""/><div class"infoDiv" v-if"itemInfo.noInfo 1"><div v-for"(item2, index2) in …

信号、进程、线程、I/O介绍

文章目录 信号进程进程通信线程可/不可重入函数线程同步互斥锁条件变量自旋锁读写锁 I/O操作阻塞/非阻塞I/OI/O多路复用存储映射I/O 信号 信号是事件发生时对进程的通知机制&#xff0c;可以看做软件中断。信号与硬件中断的相似之处在于其能够打断程序当前执行的正常流程。大多…

保护生产中 Node.js 应用程序安全的 15 项最佳实践

在后端开发方面&#xff0c;Node.js 是开发人员最喜欢的技术之一。它的受欢迎程度不断上升&#xff0c;现已成为在线攻击的主要目标之一。这就是为什么保护 Node.js 免受漏洞和威胁至关重要。 在本指南中&#xff0c;您将看到为生产设计安全 Node.js 应用程序架构的 15 种最佳…

阿里云CTO周靖人:打造一朵AI时代最开放的云

10月31日&#xff0c;在2023云栖大会上&#xff0c;阿里云CTO周靖人表示&#xff0c;面向智能时代&#xff0c;阿里云将通过从底层算力到AI平台再到模型服务的全栈技术创新&#xff0c;升级云计算体系&#xff0c;打造一朵AI时代最开放的云。在现场&#xff0c;周靖人公布了云计…

如何使用内网穿透远程访问Linux SVN服务?

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

2023年【道路运输企业主要负责人】考试技巧及道路运输企业主要负责人复审模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年【道路运输企业主要负责人】考试技巧及道路运输企业主要负责人复审模拟考试&#xff0c;包含道路运输企业主要负责人考试技巧答案和解析及道路运输企业主要负责人复审模拟考试练习。安全生产模拟考试一点通结合…

【ES专题】ElasticSearch快速入门

目录 前言从一个【搜索】说起 阅读对象阅读导航笔记正文一、全文检索1.1 什么是【全文检索】1.2 【全文检索】原理1.3 什么是倒排索引 二、ElasticSearch简介2.1 ElasticSearch介绍2.2 ElasticSearch应用场景2.3 数据库横向对比 三、ElasticSearch环境搭建3.1 Windows下安装3.2…

蓝桥杯(C++ 扫雷)

题目&#xff1a; 思想&#xff1a; 1、遍历每个点是否有地雷&#xff0c;有地雷则直接返回为9&#xff0c;无地雷则遍历该点的周围八个点&#xff0c;计数一共有多少个地雷&#xff0c;则返回该数。 代码&#xff1a; #include<iostream> using namespace std; int g[…

SpringCloud Gateway实现请求解密和响应加密

文章目录 前言正文一、项目简介二、核心代码2.1 自定义过滤器2.2 网关配置2.3 自定义配置类2.4 加密组件接口2.5 加密组件实现&#xff0c;AES算法2.6 启动类&#xff0c;校验支持的算法配置 三、请求报文示例四、测试结果4.1 网关项目启动时4.2 发生请求时 前言 本文环境使用比…