Redis是现在最受欢迎的NoSQL数据库之一,最近也开始学习这个Redis了。所以我决定来分享一下Linux上的Redis的安装和配置。
1,下载Redis源码并解压
在官网下载页面下载源码,如图: 备用地址,提取码2333
我这里下载了一个redis-6.0.8.tar.gz
的文件,解压至当前目录并进入解压的文件夹(命令中操作的文件名根据自己下载的而定,此处命令以我自己的为例):
tar -xvf redis-6.0.8.tar.gz cd redis-6.0.8
2,编译源代码
首先需要确定的是我们的机器上安装了gcc
,make
,libc6-dev
这几个软件包(如果是32位Linux或者需要编译32位redis时还需再安装libc6-dev-i386
或者g++-multilib
)。
可以通过以下命令安装(已安装这些软件包的可以忽略这一步):
# 只编译64位Redissudo apt install gccmake libc6-dev # 需要编译32位的Redissudo apt install gccmake libc6-dev libc6-dev-i386
若需要编译32位Redis,安装依赖时找不到libc6-dev-i386
,那就把上面安装命令中libc6-dev-i386
换成g++-multilib
。
然后开始编译Redis。刚刚已经解压并进入其源码目录了,现在执行以下命令编译:
make
如果想在64位机器上编译32位的Redis可执行文件,则执行:
make 32bit
等待编译完成,显示Hint: It's a good idea to run 'make test' ;)
字样时说明编译成功了。
若在编译中遇到任何错误需要再重新编译,需要先清理已编译部分,执行命令:
make distclean
然后就可以重新make
了。
然后通过以下命令安装Redis到系统:
sudomake install
若想把Redis安装至指定的位置,可以使用如下命令:
makePREFIX=想要安装到的位置(绝对路径) install
例如安装到/home/swsk33/redis
:
makePREFIX=/home/swsk33/redis install
这时,redis便编译并安装完成了!
3,编写配置文件并启动Redis
这个时候其实通过直接输入redis-server
便可以直接启动了。redis可以指定配置文件运行,最好是通过配置文件启动。
先自己新建一个文件,例如redis-config.conf
,自己加入配置内容。
常见的配置如下:
配置项 | 说明 |
daemonize yes/no |
Redis 默认不是以守护进程的方式运行,可以通过该配置项修改,使用 yes 启用守护进程打开即启动后使redis服务端后台运行 |
pidfile pid文件位置 |
当 Redis 以守护进程方式运行时,Redis 默认会把 pid 写入 /var/run/redis.pid 文件,可以通过 pidfile 指定 |
port 自定义端口号 |
指定 Redis 监听端口,默认端口为 6379 |
bind 绑定的ip地址 |
绑定的主机地址。若不写这一行,则外网所有的电脑都可以连接此服务器的redis |
timeout 毫秒 |
当客户端闲置多长秒后关闭连接,如果指定为 0 ,表示关闭该功能 |
loglevel 日志级别 |
指定日志记录级别,Redis 总共支持四个级别:debug、verbose、notice、warning,默认为 notice |
logfile 日志文件位置 |
指定日志文件位置,默认不输出日志到文件 |
dbfilename 数据库名.rdb |
指定本地数据库文件名,默认值为 dump.rdb |
dir 数据库存放目录 |
指定本地数据库存放目录,默认存放在当前目录下 |
requirepass 密码 |
设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 auth 密码 命令提供密码,默认关闭例如设置密码为123456:requirepass 123456 |
maxclients 最大连接数 |
设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息 |
maxmemory 最大内存占用字节数 |
指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区 |
vm-enabled yes/no |
指定是否启用虚拟内存机制,默认值为 no,简单的介绍一下,VM 机制将数据分页存放,由 Redis 将访问量较少的页即冷数据 swap 到磁盘上,访问多的页面由磁盘自动换出到内存中 |
上面配置不需全部写入。例如我的配置文件如下:
port 25002dir /root/Temp/db requirepass 12345678
建议requirepass
最好写上保证安全。如果有需要可以用bind
配置绑定ip地址,这样只有绑定的ip地址才能访问redis数据库。
然后启动redis服务端:
redis-server 配置文件位置
例如我的:
redis-server /home/swsk33/redis/redis-config.conf
若上面make install时使用了自定义的安装位置(使用了PREFIX参数),那么需要进入你的安装目录下的bin文件夹里面再执行命令:
./redis-server 配置文件路径
显示这个画面说明启动成功:
服务器上建议使用screen软件新建一个窗口在里面运行redis服务端,这样可以使其挂在服务器上面运行。screen的使用此处不再赘述。
4,远程连接redis服务端
远程连接时须确保没有配置bind值或者bind值是你的ip,且端口开放。远程连接也需要在自己的电脑上编译并安装redis。Windows编译可自行百度,方法类似。
此处以Linux电脑远程连接为例,通过以下命令连接:
redis-cli -h 服务器ip -p redis的端口
本地连接也是这个命令,ip地址是127.0.0.1
连接上后会进入redis命令行:
然后使用AUTH
命令输入密码认证:
auth redis密码
密码就是前面配置文件中requirepass
的配置值。
输出OK说明连接认证成功!
最后使用quit
或者exit
命令断开连接。