当前位置:网站首页>Redis是什么
Redis是什么
2022-06-29 00:23:00 【澎湖Java架构师】
Redis 全称 Remote Dictionary Server(即远程字典服务),它是一个基于内存实现的键值型非关系(NoSQL)数据库,由意大利人 Salvatore Sanfilippo 使用 C 语言编写。
Redis 遵守 BSD 协议,实现了免费开源,其最新版本是 6.20,常用版本包括 3.0 、4.0、5.0。自 Redis 诞生以来,它以其超高的性能、完美的文档和简洁易懂的源码广受好评,国内外很多大型互联网公司都在使用 Redis,比如腾讯、阿里、Twitter、Github 等等。
常见的内存型数据库,除 Redis 之外,还有 Oracle Berkeley DB(甲骨文旗下的一款产品)、SQlite(轻量级内存数据库)、Memcache(键值型分布式缓存数据库)、Altibase(基于内存的高性能数据库)。
与其他内存型数据库相比,Redis 具有以下特点:
Redis 不仅可以将数据完全保存在内存中,还可以通过磁盘实现数据的持久存储;
Redis 支持丰富的数据类型,包括 string、list、set、zset、hash 等多种数据类型,因此它也被称为“数据结构服务器”;
Redis 支持主从同步,即 master-slave 主从复制模式。数据可以从主服务器向任意数量的从服务器上同步,有效地保证数据的安全性;
Redis 支持多种编程语言,包括 C、C++、Python、Java、PHP、Ruby、Lua 等语言。
与 SQL 型数据库截然不同,Redis 没有提供新建数据库的操作,因为它自带了 16 (0—15)个数据库(默认使用 0 库)。在同一个库中,key 是唯一存在的、不允许重复的,它就像一把“密钥”,只能打开一把“锁”。键值存储的本质就是使用 key 来标识 value,当想要检索 value 时,必须使用与 value 相对应的 key 进行查找。
Redis 数据库没有“表”的概念,它通过不同的数据类型来实现存储数据的需求,不同的数据类型能够适应不同的应用场景,从而满足开发者的需求。
Redis架构
Redis体系架构主要分为两个部分:
Redis服务端
Redis客户端
客户端和服务端可以位于同一台计算机上,也可以位于不同的计算机上。服务端是整个架构的“大脑”,能够把数据存储到内存中,并且起到管理数据的作用。
Redis优势
下面对 Redis 的优势进行了简单总结:
性能极高:Redis 基于内存实现数据存储,它的读取速度是 110000次/s,写速度是 81000次/s;
多用途工具: Redis 有很多的用途,比如可以用作缓存、消息队列、搭建 Redis 集群等;
命令提示功能:Redis 客户端拥有强大的命令提示功能,使用起来非常的方便,降低了学习门槛;
可移植性:Redis 使用用标准 C语言编写的,能够在大多数操作系统上运行,比如 Linux,Mac,Solaris 等。
Redis应用场景
Redis 用来缓存一些经常被访问的热点数据、或者需要耗费大量资源的内容,通过把这些内容放到 Redis 中,可以让应用程序快速地读取它们。例如,网站的首页需要经常被访问,并且在创建首页的过程中会消耗的较多的资源,此时就可以使用 Redis 将整个首页缓存起来,从而降低网站的压力,减少页面访问的延迟时间。
我们知道,数据库的存储方式大体可分为两大类,基于磁盘存储和基于内存存储。磁盘存储的数据库,因为磁头机械运动以及系统调用等因素导致读写效率较低。Redis 基于内存来实现数据存取,相对于磁盘来说,其读写速度要高出好几个数量级。下表将 Redis 数据库与其他常用数据库做了简单对比:
Redis 基于内存来实现数据的存储,因此其速度非常快。但是我们知道,计算机的内存是非常珍贵的资源,所以 Redis 不适合存储较大的文件或者二进制数据,否则会出现错误,Redis 适合存储较小的文本信息。理论上 Redis 的每个 key、value 的大小不超过 512 MB。
总得来说,上述数据库各有优势,当我们选用数据库时,也要因地制宜,选择一款与业务场景最相符合的数据库。
边栏推荐
- This thing is called a jump watch?
- WPF implementation calls local camera~
- TypeScript -- 第七节 枚举
- MapReduce案例
- 手下两个应届生:一个踏实喜欢加班,一个技术强挑活,怎么选??
- 每日一题: 数组中数字出现的次数
- 转载:VTK笔记-裁剪分割-不规则闭合圈选裁剪-vtkSelectPolyData类(黑山老妖)
- FATAL ERROR: Could not find ./bin/my_print_defaults的解决办法
- Résumé de Manon, 25 ans, diplômé en trois ans
- Realization of beauty system with MATLAB
猜你喜欢

矩 阵 压 缩

架构实战营|模块5
![[leetcode] 522. Longest special sequence II violence + double pointer](/img/88/3ddeefaab7e29b8eeb412bb5c3e9b8.png)
[leetcode] 522. Longest special sequence II violence + double pointer

The magical zero knowledge proof can not only keep secrets, but also make others believe you!

How to guarantee the delivery quality through the cloud effect test plan

Xiaobai's e-commerce business is very important to choose the right mall system!

运营级智慧校园系统源码 智慧校园小程序源码+电子班牌+人脸识别系统

LeetCode每日一题:实现strStr()

每日一练:删除有序数组中的重复项

Daily practice: delete duplicates in the ordered array
随机推荐
LG. Hankson's interesting questions, C language
光纤滑环价格过高的原因
Es6:let, const, arrow functions
[leetcode] 522. 最长特殊序列 II 暴力 + 双指针
每日一练:删除有序数组中的重复项
ES6 module
Daily question 1: remove elements
Daily practice: delete duplicates in the ordered array
EditText监听焦点
be based on. NETCORE development blog project starblog - (13) add friendship link function
Sword finger offer 12 Path in matrix
Test experience: how testers evolve from 0 to 1
TypeScript -- 第六节 泛型
架构实战营|模块5
With notes: insert sort --from WCC
MapReduce案例
基于.NetCore开发博客项目 StarBlog - (13) 加入友情链接功能
Easy to use free ppt template
Cross domain problem of canvas drawing caused by background image cache
三個pwn題