Redis安装与配置
安装包下载
Windows版下载(Redis官方网站没有提供Windows版的安装包,但可以通过GitHub来下载Windows版Redis安装包):
https://github.com/tporadowski/redis/releases
注:Windows安装包都是某位民间“大神”根据Redis源码改造的,并非Redis官方网站提供,能用行就行。
Linux版的下载:
https://download.redis.io/releases/
Windows下配置
根据上述Windows版下载地址(其它自行搜的一样),即可查看到能下载的安装包(msi后缀名)或者是解压版(zip文件)的Redis。msi安装版本的,直接下一步下一步就是了,网上一搜有的是教程就不过多阐述了。
对于作者来说习惯性手动配置,所以一般选用zip解压版的,解压之后就获得一个文件夹(这里就不截图展示了,网上一搜一大把),关注几个核心文件即可(最关键的点,是注意是把这个解压之后的文件夹放哪里)。
Windows版本的安装目录下有两个配置文件:
- redis.windows-service.conf
- redis.windows.conf
直接点击安装目录下的redis-server.exe会默认加载redis.windows-service.conf的配置。因此想要加载redis.windows.conf的配置,只需在安装目录下运行控制台,输入:redis-server redis.windows.conf即可。
关于redis.windows.conf文件详解,网络上也一搜一大把,如果需要连接或者配置自行搜索即可;如果你只是想简单启动,无需进行特别的配置。只需要关注端口和几个默认的配置即可:
- port:端口,默认6379
- requirepass:密码,默认无密码。(注:这个密码管理所有的Redis库的密码)
- databases:默认16个数据库,类似数组的下标从0开始,初始默认使用0号库
Windows下启动
在CMD命令窗口下(快捷键:Win+R输入cmd),进入Redis目录(你自己解压之后的Redis目录)输入如下命令即启动:
redis-server.exe redis.windows.conf
启动界面,最熟悉不过了。
可以自定义一个bat文件方便启动(个人自用):
@echo off
echo redis start......
title redis-server
set ENV_HOME="D:\Redis" # 作者Redis解压目录的位置,自行修改位自己的
D:
color 0a # 改变控制题的背景和字的颜色,为了好看,可以注释掉
cd %ENV_HOME%
redis-server.exe redis.windows.conf
exit
复制上面代码,记事本另存为bat文件即可,放在桌面,想用双击运行。
还可以将Redis注册成Windows服务,在CMD命令窗口下(Redis解压目录的位置),输入命令如下:
redis-server --service-install redis.windows-service.conf --loglevel verbose
快捷键:Win+R再输入services.msc即可查看到redis服务已注册完成。
Linux下配置
通过https://download.redis.io/releases/下载相应版本的redis,具体哪个版本自己决定,这里作者选择了6.2.1版本。将下载好的“redis-6.2.1.tar.gz”文件发送上传到Linux上,位置自已决定即可。
以下操作都是作者环境下操作,请对应您的环境配置。
作者这里选择在“/usr/local/”下创建了一个“redis”目录:
/usr/local/redis
将“redis-6.2.1.tar.gz”文件发送上传该目录下并解压:
tar -zxvf redis-6.2.1.tar.gz
进入“redis-6.2.1”目录并编译:
cd /usr/local/redis/redis-6.2.1/
make
一般情况下make不会出现问题,但是可能会出现如下几个问题:
-
报错"cc:未找到命令",原因是系统中缺少gcc,安装gcc即可。
yum install gcc
-
其它问题自行搜索解决,因为每个人的环境确实不太一样,作者这里用了算是一个新创建的Linux系统Centos7.9版本。
继续,编译完成就可以安装redis了:
make PREFIX=/usr/local/redis/redis-6.2.1 install
# PREFIX关键字的作用是编译的时候用于指定程序存放的路径
# 例如:这里我指定了redis必须存放在/usr/local/redis/redis-6.2.1目录,这是我先前预设的目录
# 假设不添加该PREFIX关键字
# Linux会将可执行文件存放在/usr/local/bin目录
# 库文件会存放在/usr/local/lib目录
# 配置文件会存放在/usr/local/etc目录
# 其他的资源文件会存放在usr/local/share目录
# 这里指定目录也方便后续的卸载,后续直接 rm -rf /usr/local/redis/redis-6.2.1 即可删除redis
等待安装成功,这样在“/usr/local/redis/redis-6.2.1”会出现一个“bin”目录:
[root@VM-24-15-centos redis-6.2.1]# cd bin/
[root@VM-24-15-centos bin]# ll
total 24792
-rwxr-xr-x 1 root root 6556664 Nov 14 15:46 redis-benchmark
lrwxrwxrwx 1 root root 12 Nov 14 15:46 redis-check-aof -> redis-server
lrwxrwxrwx 1 root root 12 Nov 14 15:46 redis-check-rdb -> redis-server
-rwxr-xr-x 1 root root 6765592 Nov 14 15:46 redis-cli
lrwxrwxrwx 1 root root 12 Nov 14 15:46 redis-sentinel -> redis-server
-rwxr-xr-x 1 root root 12061704 Nov 14 15:46 redis-server
目录介绍:
- redis-benchmark:性能测试工具,可以在自己本机允许,看看自己本机性能如何
- redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
- redis-check-dump:修复有问题的dump.rdb文件
- redis-sentinel:redis集群使用
- redis-server:redis服务器启动命令
- redis-clit:客户端,操作入口
Linux下启动
根据上面的操作已经将redis安装完成了。在目录“/usr/local/redis/redis-6.2.1”下启动redis:
./bin/redis-server
# 如果你在bin目录下直接redis-server即可
执行成功,即可看到启动初始界面。
上面这种启动模式,如果你是通过SSH连接Linux的话,关闭SSH窗口,则redis会停止。
另外,可能会出现的情况,执行“redis-server”可能会提示“bash: redis-server: command not found”的错误,这种情况是因为和你可能和我一样,安装redis的时候用了“PREFIX”关键字指定了安装目录。如果你是其它原因,自行搜索吧。
如何解决,将redis安装目录下的bin目录下的所有文件,复制到“/usr/bin”下即可:
cp -r /usr/local/redis/redis-6.2.1/bin/. /usr/bin
# /usr/local/redis/redis-6.2.1/bin/ 是我本机的redis的bin目录
# /usr/local/redis/redis-6.2.1/bin/ 后面还有个点,别落下
Linux下启动(配置后端启动)
步骤如下:
复制redis.conf文件到/etc目录:
cp /usr/local/redis/redis-6.2.1/redis.conf /etc
# /usr/local/redis/redis-6.2.1/ 是我本机的redis目录
使用vi命令修改/etc/redis.conf中的配置,将后台启动设置daemonize改为yes,如下:
daemonize yes
启动redis:
redis-server /etc/redis.conf
通过查看redis进程命令:
ps -ef | grep redis
关闭redis
- 方式1,直接kill,kill -9 redis的pid。我相信你和我一样,喜欢用这个方式。
- 方式2,redis-cli shutdown
进入redis命令窗口
执行 redis-cli 即可进入redis命令窗口,然后就可以执行redis命令了:
redis-cli
127.0.0.1:6379>
如果需要在远程redis服务上执行命令:
redis-cli -h host -p port -a password
# 例如:redis-cli -h 127.0.0.1 -p 6379 -a "mypassword"
我相信你,肯定不会在"特别"的情况下,用这种方式操作redis。
我相信你,肯定不会在"特别"的情况下,用这种方式操作redis。
redis命令大全
redis介绍相关知识
- 默认端口6379
- 默认16个数据库,类似数组的下标从0开始,初始默认使用0号库
- 使用select <dbid>来切换数据库,如:select 1,切换到第2个库
- 统一密码管理,所有的库密码相同
- dbsize:查看当前数据库的key的数量
- flushdb:情况当前库
- flushall:清空全部库
redis.conf几个重要的配置项
配置项名称 | 配置项值范围 | 说明 |
---|---|---|
daemonize | yes、no | yes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行 |
port | 指定 Redis 监听端口,默认端口为6379 | |
bind | 绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind * 即可,这个属性和protected-mode控制了是否可以远程访问 | |
protected-mode | yes、no | 保护模式,该模式控制外部网是否可以连接redis服务,默认是yes所以默认我们外网是无法访问的,如需外网连接redis服务则需要将此属性改为no |
timeout | 300 | 当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能loglevel |
loglevel | debug、verbose、notice、warning | 日志级别,默认为notice |
databases | 16 | 设置数据库的数量,默认的访问数据库是0,整个通过客户端工具可以看得到 |
rdbcompression | yes、no | 指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大 |
dbfilename | dump.rdb | 指定本地数据库文件名,默认值为dump.rdb |
dir | 指定本地数据库存放目录 | |
requirepass | 设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过“AUTH ”命令提供密码,默认关闭 | |
maxclients | 0 | 设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回“max number of clients reached”错误信息 |
maxmemory | 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区。 |