百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Linux 下 redis的安装和配置(linux 安装redis-cli)

mhr18 2024-11-15 22:18 20 浏览 0 评论

ubantu16.04环境下安装

下载安装,依次执行命令;

# 从官方网站下载安装包,注意,当前在哪个目录下执行命令,下载的包将在哪个目录下

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

# 将下载包解压

$ tar -zxvf redis-4.0.6.tar.gz

# 进入解压后的文件夹

$ cd redis-4.0.6

# 对文件进行编译,得到可执行的文件,

$ sudo make

# 对编译的文件进行测试,时间较长,没有报错则没有问题,编译出的redis命令放在src目录下

$ sudo make test

# 一般将redis文件统一放在/usr/local目录下,因此将文件移动

$ sudo mv ./redis-4.0.6/* /usr/local/redis/

# 进入redis的目录,执行安装

$ cd /usr/local/redis/

$ sudo make install

# 生成配置文件

$ cd utils

$ ./install_server.sh

运行上面的脚本后,会让用户设置一些配置文件

Please select the redis port for this instance: [6379] # 配置启动端口

Selecting default: 6379

Please select the redis config file name [/etc/redis/6379.conf] # 配置启动文件

Selected default - /etc/redis/6379.conf

Please select the redis log file name [/var/log/redis_6379.log] # 配置日志文件

Selected default - /var/log/redis_6379.log

Please select the data directory for this instance [/var/lib/redis/6379] # 配置数据文件路径

Selected default - /var/lib/redis/6379

Please select the redis executable path [/usr/local/bin/redis-server] # 配置redis-server和redis-cli的安装路径

注意:redis相关操作命令都存放在/usr/local/redis/src 目录下;

测试redis

启动redis服务端

$ redis-server

可看到当前的终端被阻塞,按ctrl+C可以关闭服务端,但是有时候会关闭失败,后台依旧会运行;

关闭redis-server

方法一:
# 找到redis的进程ID
$ ps ajx|grep redis 或 top | grep redis
$ sudo kill -9 进程ID
方法二:
# 使用客户端命令
$ redis-cli -h ip地址 -p 端口 shutdown
# 该命令有时会报错,不成功使用方法一

启动redis的客户端

$ redis-cli

必须是在服务端打开后,客户端才能登陆,否则显示连接被拒绝;成功后进入客户端:

# 默认只有本机可以访问,端口为6379

> 127.0.0.1:6379

手动更改配置

为了适应需要,如不能阻塞终端,让redis在后台运行;可以远程访问redis,修改端口以及持久化文件的存储路径等,需要修改配置;

进入redis的配置文件redis.conf

$ cd /usr/local/redis/

$ sudo vi redis.conf

更改

允许远程访问:将 bind 127.0.0.1 这一行注释,解除绑定本机;

修改端口:将 port 6379 这一行更改为 port ****(指定自己的端口)

配置以守护进程运行:

# 找到这一行,默认不是守护进程,会阻塞终端,改成yes,在后台运行,非阻塞

daemonize no

可设置持久化文件

# 这一行表示可持久化文件存储在dump.rdb文件中,可自定义文件名;

dbfilename dump.rdb

修改持久化文件的存储路径

# 这一行表示文件存储在运行的目录下,一般需要修改位置,推荐/var/lib/redis

# 先在/var/lib的目录下创建redis文件

dir ./ 改为 dir /var/lib/redis/

设置日志文件的路径

# 找到loglevel notice这一行,在其下面:

logfile '' # 设置文件的路径,redis默认不记录日志;

移动配置文件位置,方便使用配置文件运行

# 直接使用 redis-server 命令运行,默认是阻塞终端并且端口是6379的

# 将配置文件redis.conf放置在一个专门的位置

$ sudo cp /usr/local/redis/redis.conf /etc/redis/

# 使用位置文件的方式启动,配置文件的相关参数就会生效

$ sudo redis-server /etc/redis/redis.conf

# 同时登陆客户端的方式也会更改,如果修改了端口

$ redis-cli -h host -p port

设置密码

# 如果有需要,可以为redis设置操作密码

# 进入配置文件

$ sudo vi /etc/redis/redis.conf

# 使用末行模式,搜索requirepass

$ / requirepass

$ requirepass 123456 # 取消requirepass foobared 的注释,将foobared的位置换成自己的密码

# 重新启动redis-server

$ redis-cli -h host -p port

# 执行

$ auth password(密码) # 没有这句不能进行读写操作

说明:不知道密码的情况下也是可以登录redis-cli客户端的,但是不能进行读写操作

多个redis实例说明

一台服务器上可以同时运行多个redis的实例,只需要将它们设置成不同的端口就可以了;

# 进入redis的配置文件目录
cd /etc/redis/
# 复制一份redis.conf
sudo cp redis.conf redis1.conf
# 修改配置文件,将运行端口更改
sudo vi redis1.conf
port 6390 # 找到修改端口的那一行
# 启动redis
sudo redis-server /etc/redis/redis1.conf
# 这时服务器新开了一个redis的实例,与其他的完全隔离;
# 多个redis的实例可以共用一份dump.rdb持久化文件,但是其内容是相互隔离的;

注意重复执行启动redis的命令,不会成功开启,而是依旧运行第一次开启的那个进程pid

安装过程遇到问题并解决

1、# ERR Client sent AUTH, but no password is set

明明在redis.conf中设置了密码,而且redis还启动了,为什么说没有密码呢?

大家都知道linux下启动redis有很多种方法,

其中有 redis-server &

这种方法启动,不会带上你的redis.conf配置文件启动

还有 redis-server /etc/redis/redis.conf &

这种方法启动的时候,会去带上配置文件redis.conf

所以如果你配置了redis.conf这个文件,那么启动redis的时候也一定要带上这个文件启动。

2、开启redis-server提示 # Creating Server TCP listening socket *:6379: bind: Address already in use

解决步骤

①找到该进程;

找到redis-server 的进程 (Process Status)

输入命令:

$ ps -ef | grep -i redis

root 3086 1 0 Apr24 ? 00:00:07 ./bin/redis-server *:6379

root 3531 3467 0 01:00 pts/0 00:00:00 grep -i redis

进程号为 3086 即为redis服务器

②杀死该进程;

使用kill 命令

kill -9 3086

③然后重新启动redis服务器。

输入命令:

redis-server

3、 使用celery+redis,当redis连接需要密码

当使用redis做broker,redis连接需要密码时:

BROKER_URL='redis://:xxxxx@127.0.0.1:6379/0',

其中xxxxx是密码,密码前必须加冒号。

相关推荐

如何检查 Linux 服务器是物理服务器还是虚拟服务器?

在企业级运维、故障排查和性能调优过程中,准确了解服务器的运行环境至关重要。无论是物理机还是虚拟机,都存在各自的优势与限制。在很多场景下,尤其是当你继承一台服务器而不清楚底层硬件细节时,如何快速辨识它是...

第四节 Windows 系统 Docker 安装全指南

一、Docker在Windows上的运行原理(一)架构限制说明Docker本质上依赖Linux内核特性(如Namespaces、Cgroups等),因此在Windows系统上无法直...

C++ std:shared_ptr自定义allocator引入内存池

当C++项目里做了大量的动态内存分配与释放,可能会导致内存碎片,使系统性能降低。当动态内存分配的开销变得不容忽视时,一种解决办法是一次从操作系统分配一块大的静态内存作为内存池进行手动管理,堆对象内存分...

Activiti 8.0.0 发布,业务流程管理与工作流系统

Activiti8.0.0现已发布。Activiti是一个业务流程管理(BPM)和工作流系统,适用于开发人员和系统管理员。其核心是超快速、稳定的BPMN2流程引擎。Activiti可以...

MyBatis动态SQL的5种高级玩法,90%的人只用过3种

MyBatis动态SQL在日常开发中频繁使用,但大多数开发者仅掌握基础标签。本文将介绍五种高阶技巧,助你解锁更灵活的SQL控制能力。一、智能修剪(Trim标签)应用场景:动态处理字段更新,替代<...

Springboot数据访问(整合Mybatis Plus)

Springboot整合MybatisPlus1、创建数据表2、引入maven依赖mybatis-plus-boot-starter主要引入这个依赖,其他相关的依赖在这里就不写了。3、项目结构目录h...

盘点金州勇士在奥克兰13年的13大球星 满满的全是...

见证了两个月前勇士与猛龙那个史诗般的系列赛后,甲骨文球馆正式成为了历史。那个大大的红色标志被一个字母一个字母地移除,在周四,一切都成为了过去式。然而这座,别名为“Roaracle”(译注:Roar怒吼...

Mybatis入门看这一篇就够了(mybatis快速入门)

什么是MyBatisMyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为M...

Springboot数据访问(整合druid数据源)

Springboot整合druid数据源基本概念SpringBoot默认的数据源是:2.0之前:org.apache.tomcat.jdbc.pool.DataSource2.0及之后:com.z...

Linux 中的 &quot;/etc/profile.d&quot; 目录有什么作用 ?

什么是/etc/profile.d/目录?/etc/profile.d/目录是Linux系统不可或缺的一部分保留配置脚本。它与/etc/profile文件相关联,这是一个启动脚本,该脚...

企业数据库安全管理规范(企业数据库安全管理规范最新版)

1.目的为规范数据库系统安全使用活动,降低因使用不当而带来的安全风险,保障数据库系统及相关应用系统的安全,特制定本数据库安全管理规范。2.适用范围本规范中所定义的数据管理内容,特指存放在信息系统数据库...

Oracle 伪列!这些隐藏用法你都知道吗?

在Oracle数据库中,有几位特殊的“成员”——伪列,它们虽然不是表中真实存在的物理列,但却能在数据查询、处理过程中发挥出意想不到的强大作用。今天给大家分享Oracle伪列的使用技巧,无论...

Oracle 高效处理数据的隐藏神器:临时表妙用

各位数据库搬砖人,在Oracle的代码世界里闯荡,处理复杂业务时,是不是总被数据“搅得头大”?今天给大家安利一个超实用的隐藏神器——临时表!当你需要临时存储中间计算结果,又不想污染正式数据表...

Oracle 数据库查询:多表查询(oracle多表关联查询)

一、多表查询基础1.JOIN操作-INNERJOIN:返回两个表中满足连接条件的匹配行,不保留未匹配数据。SELECTa.emp_id,b.dept_nameFROMempl...

一文掌握怎么利用Shell+Python实现多数据源的异地备份程序

简介:在信息化时代,数据安全和业务连续性已成为企业和个人用户关注的焦点。无论是网站数据、数据库、日志文件,还是用户上传的文档、图片等,数据一旦丢失,损失难以估量。尤其是当数据分布在多个不同的目录、服务...

取消回复欢迎 发表评论: