Redis教程

Redis简介,安装,配置

本文主要是介绍Redis简介,安装,配置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

Redis简介

Redis架构 

Redis优势

Redis应用场景

Redis下载和安装(Windows系统)

创建Redis临时服务

命令创建Redis服务

总结


Redis简介

Redis 全称 Remote Dictionary Server(即远程字典服务),它是一个基于内存实现的键值型非关系(NoSQL)数据库,由意大利人 Salvatore Sanfilippo 使用 C 语言编写。

Redis 遵守 BSD 协议,实现了免费开源,其最新版本是 6.20,常用版本包括 3.0 、4.0、5.0。自 Redis 诞生以来,它以其超高的性能、完美的文档和简洁易懂的源码广受好评,国内外很多大型互联网公司都在使用 Redis,比如腾讯、阿里、Twitter、Github 等等。
 


图1:Redis图标

提示:Redis官网(Redis)提供了完善的社区环境、文档说明,以及更新支持。

常见的内存型数据库,除 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基于内存存储的键值非关系型数据库字符串、列表、散列、有序集合、无序集合发布与订阅、主从复制、持久化存储等
Memcached基于内存存储的键值缓存型数据库键值之间的映射为提升性能构建了多线程服务器
MySQL基于磁盘的关系型数据库每个数据库可以包含多个表,每个表可以包含多条记录;
支持第三方扩展。
支持 ACID 性质、主从复制和主主复制
MongoDB基于磁盘存储的非关系文档型数据库每个数据库可以包含多个集合,每个集合可以插入多个文档支持聚合操作、主从复制、分片和空间索引


Redis 基于内存来实现数据的存储,因此其速度非常快。但是我们知道,计算机的内存是非常珍贵的资源,所以 Redis 不适合存储较大的文件或者二进制数据,否则会出现错误,Redis 适合存储较小的文本信息。理论上 Redis 的每个 key、value 的大小不超过 512 MB。

总得来说,上述数据库各有优势,当我们选用数据库时,也要因地制宜,选择一款与业务场景最相符合的数据库。

Redis下载和安装(Windows系统)

为便于大多数读者学习本套教程,教程中采用 Windows 系统对 Redis 数据库进行讲解。虽然 Redis 官方网站没有提供 Windows 版的安装包,但可以通过 GitHub 来下载 Windows 版 Redis 安装包,下载地址:点击前往。

注意:Windows 安装包是某位民间“大神”根据 Redis 源码改造的,并非 Redis 官方网站提供。

在 Windows 系统下安装 Redis 要比 Linux 系统安装稍微复杂一些,本节详细介绍如何在 Windows 系统上如何安装 Redis。

打开上述的下载链接,Redis 支持 32 位和 64 位的 Window 系统,大家根据个人情况自行下载,如图 1 所示:
 


图1:Redis 安装


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


图2:Window 安装 Redis

创建Redis临时服务

1) 启动服务端程序

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


图3:启动 Redis 服务端程序
  

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

2) 启动客户端程序

启动服务端后,双击客户端启动程序 redis-cli.exe,得到如下界面:
 


图4:Redis客户端启动

得到如上界面,说明 Redis 本地客户端与服务端连接成功。

命令创建Redis服务

上述方式虽然简单快捷,但是显然不是程序员的操作,下面介绍,通过命令启动 Redis 服务端,并将 Redis 服务添加到 Windows 资源管理器,实现开机后自动启动。

1) 注册Redis服务

通过 CMD 命令行工具进入 Redis 安装目录,将 Redis 服务注册到 Windows 服务中,执行以下命令:

redis-server.exe --service-install redis.windows.conf --loglevel verbose

执行完后,得到以下输出,说明注册成功。

[1868] 07 Jan 15:00:08.223 # Granting read/write access to 'NT AUTHORITY\NetworkService' on: "D:\Redis-x64-5.0.10" "D:\Redis-x64-5.0.10\"
[1868] 07 Jan 15:00:08.230 # Redis successfully installed as a service.

2) 启动Redis服务

执行以下命令启动 Redis 服务,命令如下:

redis-server --service-start

如下图所示:


图5:命令启动 Redis 服务


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


图6:Windows 服务管理界面

3) 启动Redis客户端

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


图7:启动 Redis 客户端

4) 检查是否连接成功

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


图8:测试客户端是否连接


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


图9:环境变量配置

注意:根据自己的安装路径添加环境变量。

总结

下面对安装过程中涉及到的命令进行总结,主要包括以下命令:

安装服务:redis-server --service-install
卸载服务:redis-server --service-uninstall
开启服务:redis-server --service-start
停止服务:redis-server --service-stop
服务端启动时重命名:redis-server --service-start --service-name Redis1

 Linux下载安装Redis(Ubuntu系统)

相比于 Windows 系统而言,Redis 更适合于在 Linux 系统上使用,这是由 Redis 的底层机制决定的。本节介绍如何在 Linux 发行版 Ubuntu 系统上安装 Redis 数据库。

了解Redis版本

Redis 版本号采用国际标准惯例,即“主版本号.副版本号.补丁级别”。

一个偶数的副版本号表示一个标准发行版本,比如 1.2,2.4,3.0,4.2,5.0,而奇数的副版本号表示非标准发行版,例如 2.9.x 版本是 Redis 3.0 标准版本的非标准发行版本。版本号为偶数的相对比较稳定,而奇数一般是偶数版的测试版本。

在线安装Redis

在 Ubuntu 终端执行相应的命令即可安装 Redis,如下所示:

$sudo apt-get update
$sudo apt-get install redis-server

启动Redis服务端

在终端输入以下命令启动 Redis 服务端:

$redis-server

启动Redis客户端

在终端输入以下命令启动 Redis 客户端:

若设置了密码,使用如下格式启动
$redis-cli -h [ip] -p [port] -a [password] 
#简单格式
$redis-cli

输入后,返回提示如下:

redis 127.0.0.1:6379>

注意:127.0.0.1 是本地计算机的 IP 地址,6379 是运行 Redis 服务器的默认端口号。

验证是否成功安装

在终端输出PING命令,返回如下输出:

redis 127.0.0.1:6379> ping
PONG

上述输出说明 Redis 已成功安装在计算机上。

Linux源码包安装

除了上述方法外,您也可以在 Redis 官网下载源码包进行安装,下载地址:Redis。下载完成后执行以下命令:

#解压、编译
$ tar xzf redis-5.0.4.tar.gz
$ cd redis-5.0.4
$ make

源码包安装完成后,存放在 src 目录下,执行下述命令启动 Redis。

$ cd src
$ ./redis-server
$ ./redis-cli
$ redis> set name www.biancheng.net
OK
$ redis> get name
"www.biancheng.net"

网页版Redis工具

Redis 官方网站提供了 Web 版 Redis 在线工具(地址:Try Redis),您也可以用它来练习 Redis 命令,不过它只是一种在线体验工具,无法在实际生产环境中无法使用。
 


图1:Redis 在线工具

Redis可视化工具

Redis 存在许多第三方可视化工具,可以让您更加直观形象地的操作 Redis 数据库,常见的 Redis GUI 工具有 Redis Desktop Manager(又称 RDM)、Another Redis DeskTop Manager 及 FastoRedis。

Redis Desktop Manager(简称 RDM)是一个跨平台 Redis 桌面管理软件,支持 Windows、Liunx 和 Mac。该工具为用户提供了易于使用的 Redis 可视化操作,同时支持 SSL/TLS加密,以及 SSH 隧道技术。它托管在 GitHub 上,下载地址:点击前往。
 


图2:Redis 可视化工具

Redis配置文件

在 Redis 的安装目录中有一个名为 redis.windows.conf 的配置文件,若在 Linux 中则为 redis.conf,本节以 Windows 系统为例对该文件进行讲解。

查看配置项

您可以使用 Redis 的CONFIG命令来查看或者更改 Redis 的配置信息。语法格式如下:

redis 127.0.0.1:6379> CONFIG GET 配置名称

示例如下,获取日志等级的配置项:

redis 127.0.0.1:6379> CONFIG GET loglevel 

输出结果如下:

1) "loglevel"
2) "notice"

通过使用*可以查看所有配置项,命令如下:

redis 127.0.0.1:6379> CONFIG GET *

输出结果:

1) "dbfilename"
2) "dump.rdb"
3) "requirepass"
4) ""
5) "masterauth"
6) ""
7) "cluster-announce-ip"
8) ""
9) "unixsocket"
10) ""
11) "logfile"
12) ""
13) "pidfile"
14) ""
15) "slave-announce-ip"
16) ""
17) "replica-announce-ip"
18) ""
19) "maxmemory"
20) "0"
21) "proto-max-bulk-len"
22) "536870912"
23) "client-query-buffer-limit"
24) "1073741824"
25) "maxmemory-samples"
26) "5"
27) "lfu-log-factor"
28) "10"
29) "lfu-decay-time"
30) "1"
31) "timeout"
32) "0"
33) "active-defrag-threshold-lower"
34) "10"
35) "active-defrag-threshold-upper"
36) "100"
37) "active-defrag-ignore-bytes"
38) "104857600"
.....

如图所示:


图1:Redis配置项


注意:由于版本和操作系统的不同,配置项的数量会存在差异。

更改配置项

如果想要重新设置配置项,需要使用以下命令:

redis 127.0.0.1:6379> CONFIG SET 配置项名称 配置项参数值

示例如下:

127.0.0.1:6379> CONFIG SET loglevel "verbose"
OK
127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "verbose"

Redis 的日志级别有以下四种:

1. debug:会打印出很多信息,适用于开发和测试阶段。
2. verbose(冗长的):包含很多不太有用的信息,但比debug简化一些。
3. notice:适用于生产模式。
4. warning : 警告信息。

Redis 默认设置为 verbose,开发测试阶段可以用 debug,生产模式一般选用 notice。

更改配置文件

Redis 某些配置信息无法直接通过命令修改,此时就需要修改配置文,比如设置 Redis 允许远程连接的功能。配置文件修改如下:

1.注释掉本地IP地址,绑定要访问的外部IP
#bind 127.0.0.1 ::1
bind 192.168.1.1
2.关闭保护模式(把yes改为no)
protected-mode no
3.重启服务器,windows重启
redis-server --service-stop
redis-server --service-start
Linux重启
sudo /etc/init.d/redis-server restart

配置项说明

下表对一些配置项做了简单地说明:
 

配置项说明
配置项参数说明
daemonizeno/yes默认为 no,表示 Redis 不是以守护进程的方式运行,通过修改为 yes 启用守护进程。
pidfile文件路径当 Redis 以守护进程方式运行时,会把进程 pid 写入自定义的文件中。
port6379指定 Redis 监听端口,默认端口为 6379。
bind127.0.0.1绑定的主机地址。
timeout0 客户端闲置多长秒后关闭连接,若指定为 0 ,表示不启用该功能。
loglevelnotice 指定日志记录级别,支持四个级别:debug、verbose、notice、warning,默认为 notice。
logfilestdout日志记录方式,默认为标准输出。
databases16设置数据库的数量(0-15个)共16个,Redis 默认选择的是 0 库,可以使用 SELECT 命令来选择使用哪个数据库储存数据。
save[seconds]
[changes]
可以同时配置三种模式:
save 900 1
save 300 10
save 60 10000
表示在规定的时间内,执行了规定次数的写入或修改操作,Redis 就会将数据同步到指定的磁盘文件中。比如 900s 内做了一次更改,Redis 就会自动执行数据同步。
rdbcompressionyes/no当数据存储至本地数据库时是否要压缩数据,默认为 yes。
dbfilenamedump.rdb指定本地存储数据库的文件名,默认为 dump.rdb。
dir./指定本地数据库存放目录。
 
slaveof <masterip>
<masterport>
主从复制配置选项当本机为 slave 服务时,设置 master 服务的 IP 地址及端口,在 Redis 启动时,它会自动与 master 主机进行数据同步。
requirepass foobared 默认关闭密码配置项,默认关闭,用于设置 Redis 连接密码。如果配置了连接密码,客户端连接 Redis 时需要通过<password> 密码认证。
maxmemory
<bytes>
最大内存限制配置项指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会尝试清除已到期或即将到期的 Key,当此方法处理 后,若仍然到达最大内存设置,将无法再进行写入操作,但可以进行读取操作。
appendfilenameappendonly.aof指定 AOF 持久化时保存数据的文件名,默认为 appendonly.aof。
glueoutputbufyes设置向客户端应答时,是否把较小的包合并为一个包发送,默认开启状态。


如果想全面了解配置选项,可以参考官方网站相关文档:点击前往。

这篇关于Redis简介,安装,配置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!