单机版-redis(手动部署)

单机版-redis部署

部署模式:单机版-redis部署

Redis版本:redis-4.0.1

部署redis方式:手动部署

解决GCC问题

linux升级gcc版本详细教程_gcc升级-CSDN博客

在完成第三步时已完成配置,后续为操作命令以及注意事项;

在进行操作数据库时,需要关注第五步注意事项,会涉及reids数据的存取位置问题。

配置文件redis版本可能有变,只需修改自身redis版本即可

目录

一、资源

二、解压安装、编译

1、上传资源

2、解压

3、编译

三、配置-配置文件

1、redis.conf配置

2、启动脚本配置

四、启停redis相关命令

1、脚本操作redis启停

2、其他方式操作redis

3、登录redis客户端

五、注意事项

1、redis数据库存取位置

2、测试jar包中参数修改


一、资源

Redis官方下载地址

Download | Redis

https://redis.io/download/#redis-downloads

二、解压安装、编译

1、上传资源

此处放在/home/tjuser/redis/下

2、解压

通过tar 解压

例如

tar -zxvf redis-4.0.1.tar.gz

3、编译

在编译前先检查gcc版本

(1)检查gcc版本

gcc -v

没有安装或版本为4.8.5的,在编译时可能会出错

(2)安装gcc

yum install -y gcc tcl

编译操作必须在解压后的文件中进行,此处为

cd  /home/tjuser/redis/redis-4.0.1/

make

make install

编译后再通过make install才能将Redis安装到系统中

只有在编译后才会生产执行文件redis-server和客户端redis-cli

编译过程可能出错:提示如下

原因、解决方式

Redis版本过高可能会报错

make报错是因为gcc版本过低,yum安装的gcc是4.8.5的。

所以需要升级gcc,升级过程如下

yum -y install centos-release-scl
 
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
 
scl enable devtoolset-9 bash
 
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
 
gcc -v

#到解压后的redis目录下继续执行make命令即可

校验是否编译成功

进入/redis-4.0.1/src/目录下,通过ls查看文件,出现redis-server,redis-cli等文件即为编译正确,否则出现的是redis-server.c等类似的文件

  • 三、配置-配置文件

redis.conf配置以及启动脚本配置

1、redis.conf配置

创建redis.conf文件

Reids的redis.conf配置文件位置一般位于

/etc/redis/redis.conf

redis.conf文件内容如下:

文件名称自取,不用赋予权限,创建文件的权限即可

#如果bind 0.0.0.0表示所有ip都可访问,如果想限制ip,则有 bind ip ip,可以写多个,空格隔开
bind 0.0.0.0

#protected-mode 设置为 yes 时,Redis 只会监听 127.0.0.1 地址,当 protected-mode 设置为 no 时,
#Redis 不再限制网络访问,可以通过任何 IP 地址访问 Redis 服务
protected-mode no

#端口配置
port 6379

#pid文件路径,如果需要使用启动脚本,则启动脚本中的pid路径需与此处pid路径一致,否则脚本会不能用,只可以启动,不可以停止
pidfile "/data/redis/redis_6379.pid"

#日志文件路径
logfile "/data/redis/redis_6379.log"

#数据持久化位置
dir "/data/redis/data"

#设置后台启动daemonize yes表示后台启动,反之
daemonize yes

#设置密码
requirepass promace@123

#设置aof格式的持久化操作
appendonly yes
appendfilename "appendonly-41.aof"

注意事项:

redis.conf内容中的设置的持久化操作是必须的,否则数据可能会丢失

持久化配置有两种方式,rdb和aof

aof持久化

dir /a/b/c

appendonly yes

appendfilename "appendonly-41.aof"

rdb持久化

rdb的定时配置

每五秒钟写一次RDB文件,如果至少有一个键发生更改

dir /a/b/c

save 900 1

save 300 10

save 60 10000

save 900 1:表示在900秒(15分钟)内,如果至少有一个键发生了变化,就执行一次RDB持久化操作;

save 300 10:表示在300秒(5分钟)内,如果至少有10个键发生了变化,就执行一次RDB持久化操作;

save 60 10000:表示在60秒内,如果至少有10000个键发生了变化,就执行一次RDB持久化操作.

dbfilename dump.rdb

rdbcompression yes

rdbcompression 指定是否开启RDB文件的压缩存储。默认为yes,开启压缩存储后可以减小RDB文件的大小,但会增加CPU的使用量

持久化的数据会在dir 目录下生成该文件

可通过redis.conf文件查看  dir  的目录

2、启动脚本配置

脚本位置:/etc/init.d/redis (一般位于此处),需自建redis文件

vim /etc/init.d/redis

脚本内容:

#!/bin/sh
# chkconfig: 2345 80 90
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

#redis端口
REDISPORT=6379

#redis执行文件的位置
EXEC=/home/tjuser/redis/redis-3.2.8/src/redis-server

#redis客户端文件的位置,
CLIEXEC=/home/tjuser/redis/redis-3.2.8/src/redis-cli

#此处pid路径需确保与redis.conf文件中pid的位置一致,不然无法保证启动脚本的作用
PIDFILE=/data/redis/redis_${REDISPORT}.pid

#reids.conf文件的路径,名称可能不同。
#例如6379.conf,若为reids_6379.conf,需为redis_${REDISPORT}.conf格式,pid也类似
CONF="/etc/redis/${REDISPORT}.conf"

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                kill -9 $PID
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

exit 0
 

#赋予权限
sudo chmod +x /etc/init.d/redis

#将Redis服务加入系统服务列表

chkconfig --add redis

#设置redis的开机自启动
sudo chkconfig redis on 

注意事项:

启动脚本中的# chkconfig: 2345 80 90 

注释必不可少,不然无法设置redis的开机自启动

如果PIDFILE文件的位置和redis.conf中pid的路径不一致,会造成用只能用service redis start启动redis,无法service redis stop关闭redis,到时候只能通过kill -9 pid杀掉进程

  • 四、启停redis相关命令

1、脚本操作redis启停

service redis start

service redis stop

service redis restart

service redis status

2、其他方式操作redis

如果启动脚本失效,则使用以下原始的命令进行启停redis

启动redis的方式

以redis-server 和redis.conf文件配合启动,此处的redis.conf文件名为6379.conf

只需根据redis-server和redis.conf文件的路径写即可

启动-命令示例

/home/tjuser/redis/redis-3.2.8/src/redis-server  /etc/redis/6379.conf  &

注意:只需找到两个文件的路径,该命令中间有空格,&前有空格

停止命令

方式一:

可以通过ps -ef | grep redis查找pid

使用kill -9 pid 杀掉进程

方式二:

还可以通过

Redis-cli  -a  password  shutdown

此处有空格,为了看着明显空格较多,password为redis的密码

如果没有设置密码

可直接使用Redis-cli  shutdown 关闭redis

3、登录redis客户端

(1)登录

方式1:

进入redis客户端的命令,设置了密码(此处要进入redis-cli的目录进行执行命令,或者它存在的目录)

如/home/redis/redis-4.0.1/src/redis-cli -a  password

又或者

./redis-cli  -a  password

方式2:

或者通过

如 /home/redis/redis-4.0.1/src/redis-cli

或者

./redis-cli (路径如方式一

进入客户端,在ping时显示没有权限,设置了密码

再通过

auth password(此时已经通过redis-cli登录了Redis的客户端)

即可登录

(2)操作数据库

redis登录客户端的写操作,默认是写在第一个数据库中,总共有(0-15)16个数据库

如果想进入第二个数据库,在通过redis-cli登录客户端的前提下

通过select  1进入第二个数据库进行读写操作

五、注意事项

1、redis数据库存取位置

在通过启动jar包方式,进行测试存取数据时,

存取redis数据的位置由application.properties中的database进行控制;

例如application.properties文件中的

spring.redis.database=1

则在进行操作redis数据库时,数据的存取会在Redis的第一个数据库中进行。

2、测试jar包中参数修改

在进行测试时,根据自身需求在application.properties文件中修改以下参数的值即可

server.port

spring.redis.database

spring.redis.host

spring.redis.port

spring.redis.password

在通过curl 进行操作数据库时,也要注意响应ip、port和key

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

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

相关文章

【数据结构】——双链表(增删查改)

目录 前言: 一:双链表的定义 ​编辑 二:双向链表的实现 2.1:链表的构造 2.2:创建头节点 2.3:创建节点 2.4:链表的尾插 2.5:链表的打印 2.6:链表的尾删 2.7&a…

[计算机网络]网络层概述

呼,写了这么久终于重新开始啦! 自己落下了太多东西了.....是时候应该重新拾掇起来了. 关于后面的代码项目,我的想法是vilas.js仍然使用js来进行编写,但是后续其他的项目会开始尝试使用ts来进行书写了. 就算是前端也需要点规范吧..... 0.写在前面 这篇文章要和大家道个歉,首…

2023年中职“网络安全“—Linux系统渗透提权③

2023年中职"网络安全"—Linux系统渗透提权③ Linux系统渗透提权任务环境说明:1. 使用渗透机对服务器信息收集,并将服务器中SSH服务端口号作为flag提交;2. 使用渗透机对服务器信息收集,并将服务器中主机名称作为flag提交…

​软考-高级-系统架构设计师教程(清华第2版)【第13章 层次式架构设计理论与实践(P466~495)-思维导图】​

软考-高级-系统架构设计师教程(清华第2版)【第13章 层次式架构设计理论与实践(P466~495)-思维导图】 课本里章节里所有蓝色字体的思维导图

Figma 插件学习(一)

一.插件介绍 插件在文件中运行,执行一个或多个用户操作,并允许用户自定义其体验或创建更高效的工作流程。 插件通过专用插件API与Figma的编辑器交互。还可以利用外部Web API。 1.插件API 插件API支持读写功能,允许查看、创建和修改文件的…

打破传统束缚,释放服务潜能:本地生活服务商聚合系统引领行业新风向!

本地生活服务商聚合系统是一种集合多平台、多项目的创新型服务系统,它打破了传统服务商系统的一对一限制,为创业者和运营商带来了诸多优势。小多将深入探讨本地生活服务商聚合系统的优势。 随着互联网的快速发展,本地生活服务也迎来了蓬勃的发…

el-tree 与table表格联动

html部分 <div class"org-left"><el-input v-model"filterText" placeholder"" size"default" /><el-tree ref"treeRef" class"filter-tree" :data"treeData" :props"defaultProp…

彻底删除的文件如何恢复?分享正确方法!

“求救&#xff01;我在清理电脑的过程中&#xff0c;把一些比较久远的文件彻底删除了。但是我突然想起好像有些非常重要的数据也一同被删掉了&#xff0c;这可怎么办&#xff1f;有方法恢复彻底删除的文件么&#xff1f;” 在日常使用电脑的过程中&#xff0c;很多用户或许都会…

机器学习-笔记

绪论 参考期刊 ICCV 偏向视觉CVPR 偏向MLIAAA AI原理ICML 参考链接 CSDN 机器学习知识点全面总结 课堂内容学习-0912-N1 对于特征提取&#xff0c;简而言之就是同类聚得紧&#xff0c;异类分得开&#xff1b;   detection研究的是样本二分类问题&#xff0c;即分为正样本…

Rockdb简介

背景 最近在使用flink的过程中&#xff0c;由于要存储的状态很大&#xff0c;所以使用到了rockdb作为flink的后端存储&#xff0c;本文就来简单看下rockdb的架构设计 Rockdb设计 Rockdb采用了LSM的结构&#xff0c;它和hbase很像&#xff0c;不过严格的说&#xff0c;基于LS…

设计模式-行为型模式-责任链模式

一、什么是责任链模式 责任链模式是一种设计模式。在责任链模式里&#xff0c;很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递&#xff0c;直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求&…

VS2019编译安装GDAL(C++)程序库

一、GDAL简介 GDAL&#xff0c;全称Geospatial Data Abstraction Library&#xff0c;即地理空间数据抽象库&#xff0c;是一个在X/MIT许可协议下读写空间数据的开源库&#xff0c;可以通过命令行工具来进行数据的转换和处理。而在调用中我们常用的OGR&#xff08;OpenGIS Simp…

MATLAB中std函数用法

目录 语法 说明 示例 矩阵列的标准差 三维数组的标准差 指定标准差权重 矩阵行的标准差 数组页的标准差 排除缺失值的标准差 标准差和均值 标准差 std函数的功能是得到标准差。 语法 S std(A) S std(A,w) S std(A,w,"all") S std(A,w,dim) S std(A…

Android---Gradle 构建问题解析

想必做 Android App 开发的对 Gradle 都不太陌生。因为有 Android Studio 的帮助&#xff0c;Android 工程师使用 Gradle 的门槛不算太高&#xff0c;基本的配置都大同小异。只要在 Android Studio 默认生成的 build.gradle 中稍加修改&#xff0c;就都能满足项目要求。但是&am…

面试题c/c++ --STL 算法与数据结构

1.6 STL 模板 模板底层实现&#xff1a;编译器会对函数模板进行两次编译&#xff0c; 在声明的地方对模板代码本身进行编译&#xff0c; 在调用的地方对参数替换后的代码进行编译。 模板传参分析 模板重载 vector 是动态空间&#xff0c; 随着元素的加入&#xff0c; 它的内…

Apache Airflow (十二) :PythonOperator

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…

内网穿透的应用-如何在Docker中部署MinIO服务并结合内网穿透实现公网访问本地管理界面

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器&#xff0c;可以在各种环境中运行&#xff0c;例如本地、Docker容器、Kubernetes集群等。它兼…

HTTPS流量抓包分析中出现无法加载key

HTTPS流量抓包分析(TLSv1.2)&#xff0c;这篇文章分析的比较透彻&#xff0c;就不班门弄斧了 https://zhuanlan.zhihu.com/p/635420027 写个小问题&#xff1a;RSA密钥对话框加载rsa key文件的时候注意不要在中文目录下&#xff0c;否则会提示&#xff1a;“Enter the passwor…

单张图像3D重建:原理与PyTorch实现

近年来&#xff0c;深度学习&#xff08;DL&#xff09;在解决图像分类、目标检测、语义分割等 2D 图像任务方面表现出了出色的能力。DL 也不例外&#xff0c;在将其应用于 3D 图形问题方面也取得了巨大进展。 在这篇文章中&#xff0c;我们将探讨最近将深度学习扩展到单图像 3…

【MySql】13- 实践篇(十一)

文章目录 1. 自增主键为什么不是连续的&#xff1f;1.1 自增值保存在哪儿&#xff1f;1.2 自增值修改机制1.2.1 自增值的修改时机1.2.2 自增值为什么不能回退? 1.3 自增锁的优化1.3.1 自增锁设计历史 2. Insert语句为何很多锁?2.1 insert … select 语句2.2 insert 循环写入2…