Redis 在 Linux 系统下安装部署的两种方式详细说明

小伙伴们好,欢迎关注,一起学习,无限进步

Redis安装和配置

1、首先在官网下载好redis-6.0.9.tar.gzhttp://redis.io/

或者使用 wget 命令下载:wget http://download.redis.io/releases/redis-6.0.9.tar.gz

2、下载使用上传到阿里云

在这里插入图片描述

3、进入到 /usr/localhost/java/ 目录,开始解压安装

tar -zxvf redis-6.0.9.tar.gz

#进入到redis-6.0.9目录执行make命令
make
#注意:这里执行make的时候可能会报错,这是可能没有gcc的原因,需要安装,命令为
yum install gcc-c++

#再次执行make命令,执行时先清除上次没安装成功的一些make内容
make distclean
make 
make install

#注意:这里gcc版本过低,也会导致安装不成功

#查看gcc版本
gcc -v  
#升级gcc版本,依次执行已下命令升级gcc
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
#以上为临时使用,需要长期使用需要执行一下命令
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

4、安装完成之后会默认在/usr/local/bin下生成一下redis的可执行文件,为了方便可以在 redis-6.0.9 建一个 bin 目录,把 redis 这些可执行文件都放到bin目录下,方便执行。

在这里插入图片描述

执行./redis-server命令

出现 Ready to accept connections,说明已经启动成功

在这里插入图片描述

5、连接redis执行./redis-cli

在这里插入图片描述

6、这时redis已经安装成功,我们来进行设置redis.conf配置文件:

  • redis 默认是本机访问,其他地方无法连接,需要把这个注释掉#bind 127.0.0.1改成bind 0.0.0.0

    在这里插入图片描述

  • 设置后台启动 redis 服务 设置为 yes

在这里插入图片描述

  • 执行后台启动./redis-server redis.conf

在这里插入图片描述

  • 这是 redis 持久化默认为 no,需要改为 yes

在这里插入图片描述

  • redis远程连接后,输入命令出现 Error:Server closed the connection,不需要登陆密码,改为no

在这里插入图片描述

#常用命令
#后台启动的两种方式
./redis-server redis.conf 
nohup ./redis-server redis.conf &
nohup ./redis-server  redis.conf  >> /usr/local/java/redis-6.0.9/logs/redis.log  2>&1 &
#后台验证redis是否在启动
ps -ef |grep redis 或 ps aux | grep redis
#查看端口是否在监听
netstat -lntp | grep 6379
#关闭客户端
redis-cli shutdown
  • Redis 持久化报错
redis.exceptions.ResponseError: MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.
#将stop-writes-on-bgsave-error设置为no
127.0.0.1:6379> config set stop-writes-on-bgsave-error no
或者进入redis.conf改no

在这里插入图片描述

  • 注意:如果 redis 不设置登录密码在服务器上会出现key丢失情况,设置密码
    在这里插入图片描述

  • 在 redis 中所有的 key 都变成 backup 是因为 redis 暴漏在公网ip下,没有设置密码,遭到恶意请求

在这里插入图片描述

  • 如果出现一下错误修改 protected-mode yes 改为:protected-mode no,密码太短也有可能会出现这个问题
org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to 192.168.43.129:6379
    at org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:132)
    at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:95)
    at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:82)
    at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:211)
    at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:184)
    at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:95)
    at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:198)
    at com.leyou.test.RedisTest.testRedis(RedisTest.java:25)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
 
 
    at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
    at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to 192.168.43.129:6379
    at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56)
    at io.lettuce.core.AbstractRedisClient.getConnection(AbstractRedisClient.java:233)
    at io.lettuce.core.RedisClient.connectStandalone(RedisClient.java:253)
    at io.lettuce.core.RedisClient.connect(RedisClient.java:202)
    at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.getConnection(StandaloneConnectionProvider.java:56)
    at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:959)
    ... 41 more

Redis Docker 安装测试

docker 安装详细说明:链接

docker 官方文档安装方式:https://hub.docker.com/_/redis

redis.conf 配置文件修改

# 将bind 127.0.0.1 -::1修改为 bind 0.0.0.0,监听来自任意网络接口的连接。
bind 0.0.0.0

# 将protected-mode设置为no,关闭保护模式,接收远程连接。
protected-mode no

# appendonly 设置为yes redis持久化
appendonly yes

# 将requirepass设置为 adminer,客户端连接到节点的认证密码
requirepass 123456

启动命令

# 拉取最新镜像
docker pull redis:latest
# 启动
docker run --name myredis -p6379:6379 --restart=always -d redis:latest --requirepass "test123456"
# redis 使用命令行设置密码和持久化方式
docker run --name myredis -v /data/redis/data:/data \
-p 6379:6379 -d redis:latest --requirepass "test123456" --appendonly yes 

# 指定配置文件启动 如果要挂载配置文件,先把提前准备好的 redis.conf 配置文件放到 /data/redis/conf 目录下(或者先启动一个 redis 镜像,把容器内的配置文件复制到容器外部)
docker cp myredis:/etc/redis/redis.conf /data/redis/conf/redis.conf

docker run --name myredis -v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/data -p 6379:6379 --restart=always -d redis:latest redis-server /etc/redis/redis.conf --requirepass "123456" --appendonly yes 

# redis 使用自定义配置方式启动,如果要修改配置文件直接修改
docker run --name myredis \
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/data -p 6379:6379 -d redis:latest redis-server /etc/redis/redis.conf 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机组成原理1

文章目录 计算机组成原理图要学的内容 总的来说学习计算机组成原理是学什么?计算机的基本硬件组成CPU内存主板其他部件 冯诺依曼体系结构(Von Neumann architecture)不可编程存储计算机具体 大家好我是jiantaoyab,这是我作为学习的笔记,在这里分享给大家,还有一些书籍<深入…

docker安装es与kibana

docker安装es与kibana docker pull elasticsearch:7.11.2 docker network create esnet docker run --name es2 -p 9200:9200 -p 9300:9300 --network esnet -e "discovery.typesingle-node" -d elasticsearch:7.11.2 docker run -d -p 5601:5601 --network e…

力扣hot100题解(python版22-28题)

22、相交链表 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交**&#xff1a;** 题目数据 保证 整个链式结构中不存在环。 注意&#xff…

Python的报错类型

在编写python代码时&#xff0c;当不当使用时&#xff0c;python会给出错误提示&#xff0c;常见的错误类型有如下几种&#xff1a; 1.TpyeError类型错误 ① 传入的参数数量不对&#xff1a;如调abs()有且仅有1个参数&#xff0c;但给出了两个时&#xff0c;python会给出提示…

14:00进去,14:08就出来了,问的问题太变态。。。

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 刚从小厂出来&#xff0c;没想到在另一家公司我又寄了。 在这家…

【FPS游戏制作】Unity加入角色控制器控制人物的移动

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

解决gogs勾选“使用选定的文件和模板初始化仓库”报错500,gogs邮件发送失败,gogs邮件配置不生效,gogs自定义模板等问题

解决gogs勾选“使用选定的文件和模板初始化仓库”报错500,gogs邮件发送失败,gogs邮件配置不生效,gogs自定义模板等问题 前几天出了教程本地部署gogs&#xff0c;在后期运行时发现两个问题&#xff1a; 第一&#xff1a;邮件明明配置了&#xff0c;后台显示未配置&#xff0c;…

离线安装腾讯x5内核(附安装包下载地址)

背景&#xff1a;由于项目需要在一个定制android设备上播放RTSP流视频&#xff0c;设备自带的浏览器内核不支持RTSP流播放&#xff0c;这就导致我使用webview播放h5网址上的视频的时候&#xff0c;无法正常播放视频。在android手机上都是可以播放的&#xff0c;所以猜测是定制a…

ROS 2基础概念#1:计算图(Compute Graph)| ROS 2学习笔记

在ROS中&#xff0c;计算图&#xff08;ROS Compute Graph&#xff09;是一个核心概念&#xff0c;它描述了ROS节点之间的数据流动和通信方式。它不仅仅是一个通信网络&#xff0c;它也反映了ROS设计哲学的核心——灵活性、模块化和可重用性。通过细致探讨计算图的高级特性和实…

MySQL 逗号分隔查询--find_in_set()函数

业务场景&#xff1a; 在使用MySQL的时候&#xff0c;可能的某个字段存储的是一个英文逗号分割的字符串&#xff08;这里我们不讨论表设计的合理性&#xff09;&#xff0c;如图所示&#xff1a; 我们在查询的时候需要匹配逗号分割中的某个字符串&#xff0c;该怎么查询呢&am…

Linux按键输入实验-创建按键的设备节点

一. 简介 Linux内核针对 GPIO驱动开发,提供了 pinctrl子系统与gpio子系统,方便了 GPIO驱动程序的开发。 本文开始学习如何利用 Linux内核的 pinctrl子系统,与 gpio子系统提供的 API函数,开发按键驱动。 这里主要学习在设备树文件中创建按键的设备节点。 二. Linux按键…

配电房智能辅助监控系统设计

业务背景 工业企业、学校、医院、居民小区等单位有这海量的配电房&#xff0c;这些配电房内的配电设备种类多、运行环境复杂&#xff0c;存在各种各样的安全隐患。目前这些配电房主要依靠人员在场值守或巡检方式进行管理&#xff0c;但单纯的人工运维方式既成本高&#xff0c;…

完美解决git 执行git push origin master指令 报错command not found

问题描述 报错信息为&#xff1a;在提交项目时的操作&#xff1a;找不到命令行 解决方案 &#xff08;1&#xff09;可以通过如下命令进行代码合并【注&#xff1a;pullfetchmerge】 git pull --rebase origin master&#xff08;2&#xff09;再执行语句&#xff1a; git p…

抖音视频评论提取软件|视频数据批量采集工具

抖音视频评论批量下载软件是一款基于C#开发的高效工具&#xff0c;旨在帮助用户快速获取抖音视频评论数据。无论您是市场分析师、社交媒体管理者还是数据研究人员&#xff0c;这款软件都会成为您工作中不可或缺的利器。 软件的关键功能包括&#xff1a; 关键词搜索&#xff1…

90%电商APP已沦落至无人下载,用户主观意愿——是真正实用性价值!

90%电商APP已沦落至无人下载&#xff0c;用户主观意愿——是真正实用性价值&#xff01; 文丨微三云营销总监胡佳东&#xff0c;点击上方“关注”&#xff0c;为你分享市场商业模式电商干货。 - 引言&#xff1a;在互联网发展的大时代下&#xff0c;似乎每个月都有新的APP出现…

浅谈 Linux 网络编程 - Server 端模型、sockaddr、sockaddr_in 结构体

文章目录 前言前置知识Server 端核心模型 【重点】相关函数 【重点】socket 函数bind 函数listen 函数accept 函数close 函数 sockaddr 数据结构 【重点】 前言 本文主要是对 Linux 网络编程中&#xff0c;Server 端的模型、相关函数 以及 sockaddr、sockaddr_in 结构体做介绍…

Unity 使用脚本获取组件,代码生成预制体

代码获取组件 using System; using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine;// 必须要继承 MonoBehaviour 才是一个组件 // 类名必要与文件名一致public class c1 : MonoBehaviour {// 使用 public 初始变量时…

从零开始手写RPC框架(1)

学习java后端也有一段时间了&#xff0c;在网上寻一些教程和github上的开源库&#xff0c;学习从零开始手写一个RPC&#xff0c;学习各位大牛的代码适当修改&#xff0c;并贴上自己的一些见解和注释。 目录 RPC简介RPC和HttpClient的区别和共同点常见RPC框架 RPC框架设计常见序…

线性规划的标准型转换

对于任意给定的线性规划的问题,其实其本身可能是不符合线性规划标准型的需求的,但是如果通过一系列的等价变化的话,是可以将该问题转换为标准型的线性规划问题,例如如下的线性规划问题: 添加图片注释,不超过 140 字(可选) 给定的线性规划问题存在若干方面不满足最小值,…

就业班 2401--2.26 Linux Day5--进程管理一

一、权限扩展 文件权限管理之&#xff1a; 隐藏权限防止root误删除 文件属性添加与查看 [rootlinux-server ~]# touch file1 file2 file3 1.查看文件属性 [rootlinux-server ~]# lsattr file1 file2 file3 ---------------- file1 ---------------- file2 ----------------…