Linux下安装redis

Linux下安装redis

  • Linux下安装redis
    • 1. 下载Redis
    • 2. 解压并安装Redis
      • 2.1 解压
      • 2.2 移动redis目录
      • 2.3 编译
      • 2.4 安装
    • 3. 启动redis
    • 4. redis.conf配置文件
    • 5. 一些错误以及常用命令
      • 5.1 查看Redis是否正在运行
        • 5.1.1、采取查看进程方式
        • 5.1.2、采取端口监听查看方式
      • 5.2 redis-cli
      • 5.3 远程连接不上问题
      • 5.4 redis-cli 未找到命令的一个解决方式
      • 5.5 设置密码
        • 5.5.1 修改配置文件
        • 5.5.2 重启redis服务
          • 5.5.2.1 使用shutdown关闭服务时Redis关闭服务错误——(error) ERR Errors trying to SHUTDOWN. Check logs.
          • 5.5.2.2 FATAL CONFIG FILE ERROR Reading the configuration file, at line 341 >>> ‘set-proc-title yes‘

Linux下安装redis

1. 下载Redis

  1. 进入官网找到下载地址 redis

  2. 右键Download按钮,选择复制链接

  3. 输入wget 将上面复制的下载链接粘贴上,如下命令:

    wget http://download.redis.io/releases/redis-6.2.14.tar.gz
    

2. 解压并安装Redis

2.1 解压

下载完成后需要将压缩文件解压,输入以下命令解压到当前目录

tar -zvxf redis-6.2.14.tar.gz

解压后在根目录上输入ls 列出所有目录会发现与下载redis之前多了一个redis-6.2.14.tar.gz文件和 redis-6.2.14的目录。

2.2 移动redis目录

一般都会将redis目录放置到 /usr/local/redis目录,所以这里输入下面命令将目前在/root目录下的redis-6.2.14文件夹更改目录,同时更改文件夹名称为redis。

mv /root/redis-6.2.14 /usr/local/redis

cd 到/usr/local目录下输入ls命令可以查询到当前目录已经多了一个redis子目录,同时/root目录下已经没有redis-6.2.14文件夹

2.3 编译

cd到/usr/local/redis目录,输入命令make执行编译命令,接下来控制台会输出各种编译过程中输出的内容。

make

在这里插入图片描述

2.4 安装

输入以下命令

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。

执行结果如下图:

在这里插入图片描述

3. 启动redis

根据上面的操作已经将redis安装完成了。在目录/usr/local/redis 输入下面命令启动redis

./bin/redis-server& ./redis.conf

上面的启动方式是采取后台进程方式,下面是采取显示启动方式(如在配置文件设置了daemonize属性为yes则跟后台进程方式启动其实一样)。

./bin/redis-server ./redis.conf

两种方式区别无非是有无带符号&的区别。 redis-server 后面是配置文件,目的是根据该配置文件的配置启动redis服务。redis.conf配置文件允许自定义多个配置文件,通过启动时指定读取哪个即可。

4. redis.conf配置文件

在目录/usr/local/redis下有一个redis.conf的配置文件。我们上面启动方式就是执行了该配置文件的配置运行的。我么可以通过cat、vim、less等Linux内置的读取命令读取该文件。

也可以通过redis-cli命令进入redis控制台后通过CONFIG GET * 的方式读取所有配置项。 如下:

在这里插入图片描述

这里列举下比较重要的配置项

配置项名称配置项值范围说明
daemonizeyes、noyes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行
port指定 Redis 监听端口,默认端口为 6379
bind绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问 。
protected-modeyes 、no保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。
timeout300当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能
logleveldebug、verbose、notice、warning日志级别,默认为 notice
databases16设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到
rdbcompressionyes、no指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大。
dbfilenamedump.rdb指定本地数据库文件名,默认值为 dump.rdb
dir指定本地数据库存放目录
requirepass设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH 命令提供密码,默认关闭
maxclients0设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。
maxmemoryXXX 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值。

更改方式:

vim /usr/local/redis/redis.conf

更改的属性:

daemonize  yes
bind  *
protected-mode  no

5. 一些错误以及常用命令

5.1 查看Redis是否正在运行

5.1.1、采取查看进程方式
ps -aux | grep redis
5.1.2、采取端口监听查看方式
netstat -lanp | grep 6379

5.2 redis-cli

redis-cli是连接本地redis服务的一个命令,通过该命令后可以连接redis的脚本控制台。

输入exit可以退出redis脚本控制台

输入命令shutdown关闭运行中的Redis服务

在这里插入图片描述

5.3 远程连接不上问题

已经开放了Redis服务的ip不为127.0.0.1,理论上远程客户端应该可以连接了,而且云服务器的端口号也在安全组里开放了。

redis-serverredis-server& 这两种方式都是直接读取默认的配置文件启动,无非前者是显示启动后者是作为后台应用启动。

输入命令

 redis-server /usr/local/redis/redis.conf

成功
在这里插入图片描述

5.4 redis-cli 未找到命令的一个解决方式

进入redis的安装路径下,将src目录里的redis-cli文件复制到/usr/local/bin/路径中

cp src/redis-cli  /usr/local/bin/

5.5 设置密码

5.5.1 修改配置文件

运行命令

vim /etc/redis.conf
#requirepass foobared去掉注释,foobared改为自己的密码,我在这里改为
requirepass 123456
5.5.2 重启redis服务
5.5.2.1 使用shutdown关闭服务时Redis关闭服务错误——(error) ERR Errors trying to SHUTDOWN. Check logs.

首先,我在关闭的时候,报出错误,告诉我们尝试关闭时错误,叫我们检查日志

那我们就去看一下日志:

1): ps -ef | grep redis 找到redis的当前进程号

ps -ef | grep redis

2):再使用 kill -9强制关闭redis进程:

kill -9  端口号

3):打开redis.conf,找到 logfile

我这里没有设置目录,需要同学们自己自定义一下路径 /usr/local/redis/redis_log/redis_log.log,这里redis_log目录需要自己手动创建,redis_log.log文件则不需要

4):再将日志文件的目录权限设置为777就可以了,

 chmod -R  777  redis_log(redis日志文件目录)
5.5.2.2 FATAL CONFIG FILE ERROR Reading the configuration file, at line 341 >>> ‘set-proc-title yes‘

1): ps -ef | grep redis 找到redis的当前进程号

ps -ef | grep redis

2):再使用 kill -9强制关闭redis进程:

kill -9  端口号

3):进入redis bin目录

./redis-server ../redis.conf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/345559.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java项目:04 好物分享管理系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 好物分享平台 项目是单体ssm好物分享平台,包括用户平台及后台管理系统, 前台系统包含首页门户、好物推荐、好物搜索、好物展示…

BikeDNA(七)外在分析:OSM 与参考数据的比较1

BikeDNA(七)外在分析:OSM 与参考数据的比较1 该笔记本将提供的参考自行车基础设施数据集与同一区域的 OSM 数据进行所谓的外部质量评估进行比较。 为了运行这部分分析,必须有一个参考数据集可用于比较。 该分析基于将参考数据集…

Oracle篇—实例中和name相关参数的区别和作用

☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux,也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣…

如何将jpg图片大小压缩?这个方法建议收藏

如何将jpg图片大小压缩?平时在分享jpg图片的时候,如果遇到图片过大无法使用的情况,可以试试本文分享的这个方法,通过图片在线处理工具压缩jpg文件大小,还不会操作的小伙伴也不用担心,下面小编会详细介绍jpg…

2024-01-09 Android.mk 根据c文件名插入特定的宏定义,我这里用于定义log LOG_TAG 标签

一、在Android的构建系统中,使用Android.mk构建脚本可以根据特定需求来定义宏。如果你想根据C文件的名称来插入特定的宏定义,可以使用条件语句检查文件名,并相应地设置宏。 在Android的构建系统中,使用Android.mk构建脚本可以根据…

C/S架构,集成三维影像后处理功能,自主版权的一套医院PACS系统源码

一、PACS简介 PACS(PictureArchivingandCommunicationsSystem)即图像存储与传输系统,是应用于医院的数字医疗设备如CT、MR(磁共振)、US(超声成像)、X光机、DSA(数字减影&#xff09…

【C语言期末】基于VS2022的学生成绩管理系统(2)

诚接计算机专业编程任务(C语言、C、Python、Java、HTML、JavaScript、Vue等)10/15R,如有需要请私信我,或者加我的企鹅号:1404293476 本文资源:https://download.csdn.net/download/weixin_47040861/88737450 1.题目要求 设计题目…

探索设计模式的魅力:简单工厂模式

简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,其主要目的是用于创建对象的实例。这种模式通过封装创建对象的代码来降低客户代码与具体类之间的耦合度。简单工厂不是GoF(四人帮)设计模式之一&#xff0c…

Java合并两个有序链表

思路: 创建一个临时的节点,命名傀儡节点,可以理解成临时的头节点,newHead,list1和list2的两两元素比较,小的连接newHead(升序)newHead的路径(蓝色)就是连接后…

第8章-第4节-Java中字节流的缓冲流

1、缓冲流:属于高级IO流,并不能直接读写数据,需要依赖于基础流。缓冲流的目的是为了提高文件的读写效率?那么是如何提高文件的读写效率的呢? 在内存中设置一个缓冲区,缓冲区的默认大小是8192字节&#xff…

VScode全局搜索屏蔽、显示屏蔽指定文件类型及文件夹

1.键盘上按快捷键“ crtl 逗号 ”启动设置界面 crtl ,设置界面显示如下: 2.搜索屏蔽 2.1.输入 search.exclude search.exclude 设置界面显示如下: 2.2. 点击下图红色箭头“Add Pattern”,添加想要屏蔽的文件类型或文件夹 **/*.git *…

python + selenium 初步实现数据驱动

如果在进行自动化测试的时候将测试数据写在代码中,若测试数据有变,不利于数据的修改和维护。但可以尝试通过将测试数据放到excel文档中来实现测试数据的管理。 示例:本次涉及的项目使用的12306 selenium 重构------三层架构 excel文件数据如…