Linux安装部署Redis(超级详细) 全球即时看
原文链接:https://www.cnblogs.com/AllWjw/p/15771097.html
网上搜索了一筐如何在Linux下安装部署Redis的文章,各种文章混搭在一起勉强安装成功了。自己也记录下,方便后续安装时候有个借鉴之处。
- Redis版本 5.0.4
- 服务器版本 Linux CentOS 7.6 64位
下载Redis
进入官网找到下载地址https://redis.io/download
(资料图片)
右键Download按钮,选择复制链接。进入到Xshell控制台(默认当前是root根目录),输入wget 将上面复制的下载链接粘贴上,如下命令:
1 | wget http: //download.redis.io/releases/redis-5.0.7.tar.gz |
敲入回车键执行后如下图:
等待下载完成。
解压并安装Redis
解压
下载完成后需要将压缩文件解压,输入以下命令解压到当前目录
1 | tar -zvxf redis-5.0.7.tar.gz |
解压后在根目录上输入ls 列出所有目录会发现与下载redis之前多了一个redis-5.0.7.tar.gz文件和 redis-5.0.7的目录。
移动redis目录
一般都会将redis目录放置到 /usr/local/redis目录,所以这里输入下面命令将目前在/root目录下的redis-5.0.7文件夹更改目录,同时更改文件夹名称为redis。
1 | mv /root/redis-5.0.7 /usr/local/redis |
cd 到/usr/local目录下输入ls命令可以查询到当前目录已经多了一个redis子目录,同时/root目录下已经没有redis-5.0.7文件夹
编译
cd到/usr/local/redis目录,输入命令make执行编译命令,接下来控制台会输出各种编译过程中输出的内容。
1 | make |
最终运行结果如下:
安装
输入以下命令
1 | make PREFIX=/usr/local/redis install |
这里多了一个关键字PREFIX=
这个关键字的作用是编译的时候用于指定程序存放的路径。比如我们现在就是指定了redis必须存放在/usr/local/redis目录。假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,
库文件会存放在/usr/local/lib目录。配置文件会存放在/usr/local/etc目录。其他的资源文件会存放在usr/local/share目录。这里指定号目录也方便后续的卸载,后续直接rm -rf /usr/local/redis 即可删除redis。
执行结果如下图:
启动redis
根据上面的操作已经将redis安装完成了。在目录/usr/local/redis 输入下面命令启动redis
1 | ./bin/redis-server& ./redis.conf |
上面的启动方式是采取后台进程方式,下面是采取显示启动方式(如在配置文件设置了daemonize属性为yes则跟后台进程方式启动其实一样)。
1 | ./bin/redis-server ./redis.conf |
两种方式区别无非是有无带符号&的区别。 redis-server 后面是配置文件,目的是根据该配置文件的配置启动redis服务。redis.conf配置文件允许自定义多个配置文件,通过启动时指定读取哪个即可。
redis.conf配置文件
在目录/usr/local/redis下有一个redis.conf的配置文件。我们上面启动方式就是执行了该配置文件的配置运行的。我么可以通过cat、vim、less等Linux内置的读取命令读取该文件。
也可以通过redis-cli命令进入redis控制台后通过CONFIG GET * 的方式读取所有配置项。 如下:
12 | redis-cli CONFIG GET * |
回车确认后会将所有配置项读取出来,如下图
这里列举下比较重要的配置项
配置项名称 | 配置项值范围 | 说明 |
daemonize | yes、no | yes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行 |
port | 指定 Redis 监听端口,默认端口为 6379 | |
bind | 绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问 。 | |
protected-mode | yes 、no | 保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。 |
timeout | 300 | 当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能 |
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 | XXX | 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值。 |
这里我要将daemonize改为yes,不然我每次启动都得在redis-server命令后面加符号&,不这样操作则只要回到Linux控制台则redis服务会自动关闭,同时也将bind注释,将protected-mode设置为no。这样启动后我就可以在外网访问了。
更改方式:
1 | vim /usr/local/redis/redis.conf |
通过 /daemonize 查找到属性,默认是no,更改为yes即可。 (通过/关键字查找出现多个结果则使用 n字符切换到下一个即可,查找到结果后输入:noh退回到正常模式)
如下图:
其他两个属性也是同样方式查找和编辑即可。
查看Redis是否正在运行
1、采取查看进程方式
1 | ps -aux | grep redis |
结果如下图:
2、采取端口监听查看方式
1 | netstat -lanp | grep 6379 |
结果如下图:
redis-cli
redis-cli
是连接本地redis服务的一个命令,通过该命令后可以既然怒redis的脚本控制台。如下图
输入exit可以退出redis脚本控制台
关闭运行中的Redis服务
输入redis-cli
进入控制台后输入命令shutdown
即可关闭运行中的Redis服务了。如下图:
远程连接不上问题
如下图,已经开放了Redis服务的ip不为127.0.0.1,理论上远程客户端应该可以连接了,而且云服务器的端口号也在安全组里开放了。
后面发现是启动命令的问题,因为我比较偷懒,启动redis我都是直接输入命令redis-server
或redis-server&
这两种方式都是直接读取默认的配置文件启动,无非前者是显示启动后者是作为后台应用启动。我其实也很纳闷,因为我修改的就是默认的配置文件啊,我并没有重新生成新的配置文件,但是确实我输入命令redis-server /usr/local/redis/etc/redis.conf
就是能成功,而且我输入命令redis-server& /usr/local/redis/etc/redis.conf
也是远程登录失败。关于直接输入redis-server
不行的问题我还怀疑是不是Linux缓存问题,我重启服务器尝试下。结果还是一样的。。。哎先不纠结了 后续再去找原因吧
- Linux安装部署Redis(超级详细) 全球即时看
- 1美元兑换多少欧元?(2023年5月4日)-天天快报
- 红楼梦葬花吟歌词儿_红楼梦葬花吟歌词
- 世界球精选!团籍丢失怎么办理_团籍丢失
- 滕州东沙河街道开展社区工作者志愿服务活动|天天热点
- 焦点速讯:稳健医疗:公司2022年存货减值较之前年度有所增加,主要来源于感染防护产品存货的减值
- 环球热门:泸州老窖:2022年归母净利同比增超30% 品牌矩阵势能强劲释放
- 在“冷门”领域,也可以发光发热(快评)
- 世界热点评!美易理财app下载_美易理财
- 马德里不思议年会舞蹈完整版(马德里不思议舞蹈串词)
- 湖人vs勇士G1:主打“快速调整”的顶流对决_焦点关注
- 昆工科技:4月28日融资买入17.18万元,融资融券余额2736.13万元
- “五一”假期全国道路交通总体平稳有序 世界视点
- 华星控股(08237):林海琪获委任为公司秘书及授权代表
- 快报:手撕包菜的家常做法 最正宗的做法_手撕包菜的做法最正宗的做法
- 今年城市节水宣传周活动将启动
- 半场:尤文2-1莱切,帕雷德斯任意球破门,弗拉霍维奇建功|环球速看料
- 商务部与上海市政府、复旦大学分别签署协议 部署新一轮合作-当前快播
- 环球实时:翔霖·(一)
- 动态:IMF:中国将成为今年亚太地区经济增长关键驱动因素
- 俄方:有无人机袭击克里姆林宫,普京未受伤-滚动
- 追梦:早料到布伦森今天会爆发因为巴特勒没防他 热火会赢G3
- 当前热讯:山东省成立聊城鲁西化工“5·1”爆炸着火事故调查组
- 全球短讯!“复兴号”动车组将首次驶上青藏铁路
- 精选!六福珠宝黄金价格今天多少一克(2023年05月03日)
- 天天百事通!ksd是什么意思_ksd hailvedu com
- 视焦点讯!海巡用炮由现场指挥官裁定 朝野皆赞同
- 天天快报!湖人VS勇士无愧顶流对决:14次上热搜引热议,詹姆斯库里场边笑谈
- 北京日报客户端
- 天天微动态丨塔克致恩比德:我说了要帮你拿到MVP和冠军