Redis是什么🐲
1.Redis的背景🎍
Redis(Remote Dictionary Server)译为”远程字典服务”,它是一款基于内存实现的键值型 NoSQL 数据库, 通常也被称为数据结构服务器,这是因为它可以存储多种数据类型,比如 string(字符串),hash(哈希散列),list(列表),set(集合)和 sorted set(有序集合)等
Redis 是由意大利人 Salvatore Sanfilippo 使用 C语言编写,它遵守 BSD 开源协议,并且对多种编程语言提供了良好的 API 支持,比如 Java,C/C++,C#,PHP,JavaScript,Perl,Python,Ruby 等
Redis是常见的内存型数据库,除 Redis 之外,还有 Oracle Berkeley DB(甲骨文旗下的一款产品)、SQlite(轻量级内存数据库)、Memcache(键值型分布式缓存数据库)、Altibase(基于内存的高性能数据库)
2.Redis的特点🎍
与其他内存型数据库相比,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 数据库没有的概念,它通过不同的数据类型来实现存储数据的需求,不同的数据类型能够适应不同的应用场景,从而满足开发者的需求
3.Redis的架构🎍
Redis体系架构主要分为两个部分:
- Redis服务端
- Redis客户端
客户端和服务端可以位于同一台计算机上,也可以位于不同的计算机上。服务端是整个架构的”大脑”,能够把数据存储到内存中,并且起到管理数据的作用
4.Redis的优劣势🎍
下面对 Redis 的优势进行了简单总结:
- 性能极高:Redis 基于内存实现数据存储,它的读取速度是 次/s,写速度是 81000次/s;
- 多用途工具: Redis 有很多的用途,比如可以用作缓存、消息队列、搭建 Redis 集群等;
- 命令提示功能:Redis 客户端拥有强大的命令提示功能,使用起来非常的方便,降低了学习门槛;
- 可移植性:Redis 使用用标准 C语言编写的,能够在大多数操作系统上运行,比如 Linux,Mac,Solaris 等
- 数据结构丰富:除了支持string类型的value外还支持hash,set,zset,list等数据结构
- 支持主从复制:主机会自动将数据同步到从机,可以进行读写分离
下面对 Redis 的劣势进行了简单总结:
- 数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上
- Redis 不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复
- 主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性
- Redis 较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费
5.Redis的应用场景🎍
Redis 用来缓存一些经常被访问的热点数据、或者需要耗费大量资源的内容,通过把这些内容放到 Redis 中,可以让应用程序快速地读取它们。例如,网站的首页需要经常被访问,并且在创建首页的过程中会消耗的较多的资源,此时就可以使用 Redis 将整个首页缓存起来,从而降低网站的压力,减少页面访问的延迟时间。
我们知道,数据库的存储方式大体可分为两大类,基于磁盘存储和基于内存存储。磁盘存储的数据库,因为磁头机械运动以及系统调用等因素导致读写效率较低。Redis 基于内存来实现数据存取,相对于磁盘来说,其读写速度要高出好几个数量级。下表将 Redis 数据库与其他常用数据库做了简单对比:
Redis 基于内存来实现数据的存储,因此其速度非常快。但是我们知道,计算机的内存是非常珍贵的资源,所以 Redis 不适合存储较大的文件或者二进制数据,否则会出现错误,Redis 适合存储较小的文本信息。理论上 Redis 的每个 key、value 的大小不超过 512 MB
6.Redis为什么这么快🎍
- 完全基于内存,绝大部分请求是纯粹的内存操作,非常迅速。数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的事件复杂度都是O(I)
- 数据结构简单,对数据的操作也简单,Redis中的数据结构是专门进行设计的
- 采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有出现死锁而导致的性能消耗的情况
- 使用多路I/O复用模型,非阻塞IO
- 使用的底层模型不同,它们之间底层实现方式以及与客户端之间通信的应用协议不一样,Redis直接自己构建了VM机制,因为一般的系统调用系统函数的话,会浪费一定的时间去请求
Redis的安装搭建🐲
1.Windows操作系统的安装搭建🐙
Redis 官方网站没有提供 Windows 版的安装包,但可以通过 GitHub 来下载 Windows 版 Redis 安装包
下载地址:https://github.com/tporadowski/redis/releases
注意:Windows 安装包是某位民间“大神”根据 Redis 源码改造的,并非 Redis 官方网站提供

下载完成后,打开相应的文件夹,您会看到如下图所示的文件目录:

创建Redis临时服务
1) 启动服务端程序
如上图所示,双击 Redis 服务端启动程序 redis-server.exe,您会看到以下界面:

上图中显示一些 Redis 的相关信息,比如 Redis 的版本号以及默认端口号(6379)。注意,为了实现后续操作,请您保持服务端开启状态,否则客户端无法正常工作
2) 启动客户端程序

得到如上界面,说明 Redis 本地客户端与服务端连接成功
命令创建Redis服务
上述方式虽然简单快捷,但是显然不是程序员的操作,下面介绍,通过命令启动 Redis 服务端,并将 Redis 服务添加到 Windows 资源管理器,实现开机后自动启动。
1) 注册Redis服务
通过 CMD 命令行工具进入 Redis 安装目录,将 Redis 服务注册到 Windows 服务中,执行以下命令:

执行完后,得到以下输出,说明注册成功。
2) 启动Redis服务
执行以下命令启动 Redis 服务,命令如下:
如下图所示:

注意:此时 Redis 已经被添加到 Windows 服务中,因此不会再显示 Redis 服务端的相应的信息,如下图所示:

3) 启动Redis客户端
在 CMD 命令行输出 redis-cli 命令启动客户端,如下所示:

4) 检查是否连接成功
测试客户端和服务端是否成功连接。输出命令,若返回则证明成功连接。如下所示:

通过上面的操作,我们完成了 Redis 的安装。当然,您也可以将 Redis 加入到环境变量中,如下所示:

注意:根据自己的安装路径添加环境变量。
总结
下面对安装过程中涉及到的命令进行总结,主要包括以下命令:
安装服务:redis-server –service-install 卸载服务:redis-server –service-uninstall 开启服务:redis-server –service-start 停止服务:redis-server –service-stop 服务端启动时重命名:redis-server –service-start –service-name Redis1
2.Linux操作系统的安装搭建🐙
Yum源方式安装
源码方式安装
Redis配置文件🐲
`配置文件名称 Windows—>redis.windows.conf Linux —>redis.conf
1.查看配置项
2.更改配置项
扩展: Redis的日志等级为:
1.debug:会打印出很多信息,适用于开发和测试阶段
2.verbose:包含很多不太常用的信息,但是比debug简短
3.notice:适用于生产场景
4.warning:警告信息
3.配置项说明
4.常见配置案例
- NETWORK网络
- GENERAL通用
- SNAPSHOTTING快照
- SECURITY 安全
- CLUENTS 限制
- APPEND ONLY 模式 AOF 配置

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/198585.html