Redis作为一种缓存型数据库,它是可以安装在我们常用的操作系统中,例如Mac、Linux和Windows。但是Redis官方是没有发布Windows版本,现有的Windows版本都是一些民间大佬开发提供。为什么Redis官方没有提供Windows版本,反而是推荐大家在Linux上使用Redis呢?从我个人的角度来看,可能分为如下几点:
1、底层网络模型。Redis作为一种单线程的服务,在运行的过程中也使用到了单线程轮询机制,在网络模型上用到了epoll;而Windows上的网络模型selector;两种网络模型从性能上来说,epoll比selector性能更加好。这也是大家在很多的开源、商用等服务软件上,研究底层网络时,发现这些软件底层基本都是采用的epoll网络模型。
2、作者习惯。这一点也是在网络上看到,或许具有一定的参考价值,但有待考证。Redis的作者个人是不看好Windows系统,因为将Redis的所有开发都投入到了Linux中。
这里重点讲到的网络模型,是因为很多的服务,例如MySQL的性能瓶颈在磁盘IO。Redis作为一款内存型的服务,对数据的读写都是去操作内存,因此磁盘IO这块就可以忽略不计,又因为是单线程模型,因此要解决性能瓶颈问题,应该重点放在网络IO、CPU、内存等方面考虑,尤其是CPU和内存极为重要。
环境安装
Redis服务的安装是非常简单的,也有很多的安装方式。例如源码编译安装,包管理工具安装,这里作为学习使用,推荐大家使用源码编译安装。如果你仍选择包工具安装,这里推荐几款安装方式。Mac推荐使用brew包管理工具进行安装,在Linux发行版上,Ubuntu的可以使用apt-get包管理工具、Centos推荐使用yum包管理工具。
现目前随着云原生、容器技术的发展,可能很多的环境都是基于docker安装,实现跨平台的使用。在大家对Redis有一定的了解程度之后,强烈推荐使用docker这种方式来搭建环境。
Windows安装
Windows的版本可以使用微软官方GitHub仓库的安装包,不过该仓库也处于一些停止更新状态。打开GitHub官网地址,https://github.com/MicrosoftArchive/redis/releases直接下载最新的版本。
我这里使用的是Redis-x64-3.0.504.zip
包,下载之后进行解压,会有如下一些文件,.exe
的文件是Windows下的可执行文件,.conf
是Redis的配置文件。在学习阶段你只需要关注这三个文件就可以了。
1、redis-server.exe文件是Redis服务启动可执行文件。
2、redis-cli.exe文件是Redis的客户端可执行文件,可以通过该工具直接连接到Redis服务,进行Redis命令行操作。
3、redis.windows.conf文件是Redis的配置文件,关于Redis的端口、内存大小、数据库目录、持久化等所有配置均在该文件里面。
首先点击执行redis-server.ext,会弹出一个命令窗口,保持该窗口处于打开状态(这样才能保证Redis的服务处于运行状态)。接着点击redis-cli.exe文件,就可以进入到Redis的命令行界面。由于我这里没有Windows操作环境,没法1:1的演示操作。如果遇到问题,可以反馈或者网上查阅资料。
Mac安装
在Mac上安装Redis,可以使用Mac常用的包管理工具brew
进行安装,或者使用源码编译安装。由于下面会演示Linux源码编译安装,所以Mac就演示使用brew
包管理工具进行安装。
关于brew
包管理工具,这里就不单独介绍。可以通过官网地址进行了解。
1、查看Redis的版本。
代码语言:shell复制brew search redis
2、安装指定的Redis版本。
代码语言:shell复制brew install redis
3、安装成功之后,直接启动Redis服务。
代码语言:shell复制brew service start redis
默认的启动方式,会读取配置文件
/usr/local/etc/redis.conf
。也可以自己单独创建一个配置文件,执行redis-server /path/redis.conf
即可。
Linux安装
Linux操作系统,都带有自身的包管理工具,类似Mac上的有brew
包管理工具一样。例如centos操作系统有yum
,Ubuntu有apt-get
,在Linux操作系统上安装,也可以直接使用包管理工具。但也有一个缺点,可能版本不是你需要的,可以升级系统源。但推荐使用源码编译安装的方式。这里以centos操作系统为例。
1、下载包文件。
代码语言:shell复制# 下载对应的版本
cd /usr/local/ && wget https://download.redis.io/releases/redis-7.0.10.tar.gz
# 解压压缩包
tar -zxvf redis-7.0.10.tar.gz
# 重命名
mv redis-7.0.10 redis
你可以选择适合自己的版本,官方下载地址:https://download.redis.io/releases/
2、安装Redis,按照下面的命令,正常情况下安装就完成了。
代码语言:shell复制cd redis && make && make install
3、启动Redis服务。
代码语言:shell复制redis-server /usr/local/redis/redis.conf
守护进程启动
什么叫守护进程呢,上面安装的几种启动方式,在你运行启动Redis服务器后,会出现如下的内容:
当你关闭该窗口,就会发现Redis链接不上,这是因为关闭窗口时,Redis服务就自动退出。这是因为Redis的配置文件redis.conf
中的配置项没有开启守护进程的模式。只要找到该文件,将该配置项的值设置为yes。如下配置:
daemonize yes
需要注意的是,在windows操作中,是不支持该配置项,只有在Linux系统和Mac系统才支持。
代码语言:shell复制# On Windows, daemonize and pidfile are not supported.
# However, you can run redis as a Windows service, and specify a logfile.
# The logfile will contain the pid.
基础配置
安装好Redis之后,可以直接使用默认的配置,也可以自己单独修改一些配置,这里简单罗列几个基础的配置项。所有的配置项都在redis.conf
文件中。
# 配置端口号
port 6379
# 配置日志文件
logfile "redis_log.log"
# 配置数据存储目录
dir /user/local/redis/db
# 配置数据库名称
dbfilename 6379.rdb
# 配置Redis密码
requirepass 6379
基础操作
Redis是一款c/s的服务,安装好服务器端,就可以使用不同的客户端进行连接。Redis默认也带有客户端操作工具redis-cli
。直接使用命令连接即可。
redis-cli
如果你给Redis配置了密码,在连接时需要设置密码。
代码语言:shell复制# 方式一
redis-cli -h 127.0.0.1 -p 6379 -a your_password
# 方式二
redis-cli进入命令行操作界面,然后在输入auth命令。
redis-cli
auth 123456
连接成功之后,就可以操作Redis。
代码语言:shell复制> keys *
(empty list or set)
> set name 1
OK
> keys *
1) "name"
这里推荐一个在线Redis命令行工具,不过部分命令被禁用,是不支持执行。做一些基础的操作命令还是很方便的。也可以使用官方的一个演示命令窗口。
教程回顾
1、安装Redis都有哪几种方式,基本的操作命令是什么?
2、Redis如何守护进程的方式运行?
3、Redis中如何配置端口号,以及日志文件。