单机版-redis(手动部署)

单机版-redis部署

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

Redis版本:redis-4.0.1

部署redis方式:手动部署

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

在进行操作数据库时,需要关注第五步注意事项,会涉及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

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

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

相关文章

Unity 场景烘培 ——unity灯光和设置天空盒(二)

提示:文章有错误的地方,还望诸位大神指出。 文章目录 前言一、光源种类1.Directional Light(方向光,平行光)2.Point Light(点光源)3.Spotlight(聚光灯)4.Area Light(区域光&#xff…

【网络奇遇记】那年我与计算机网络的初相识 —— 网络的体系结构

🌈个人主页:聆风吟 🔥系列专栏:网络奇遇记、数据结构 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. 常见的三种计算机网络体系结构1.1 开放系统互连参考模型1.2 TCP/IP参考模型1.3 原理参考模型 二…

SSM项目初始化流程与操作概念解释-SpringBoot简化版

文章目录 1.引入概念2.导入依赖3.项目配置4.依照SpringMVC框架构建项目 1.引入概念 例如某一个XX系统,该系统存在前台页面(给用户直观看或使用),和后台页面(给管理人员调整数据和权限)。 这二个页面都通过…

世界坐标系,相机坐标系,像素坐标系转换 详细说明(附代码)

几个坐标系介绍,相机内外参的回顾参考此文。 本文主要说明如何在几个坐标系之间转换。 本文涉及: 使用相机内参 在 像素坐标系 和 相机坐标系 之间转换。使用相机外参(位姿)在相机坐标系 和 世界坐标系 之间转换。(qw,qx,qy,qz,tx,ty,tz)形式的外参如何使用。以具体情景为…

CSGO饰品持续跌价,市场真的要崩盘了吗?

CSGO饰品市场会崩盘吗?CSGO还能做多久? CSGO饰品持续跌价,市场真的要崩盘了吗? 除非v社那边有什么大动作,不然就市场而言,饰品恐怕永远不会崩盘。 原因其实很简单,只要庄家和大户不崩&#xf…

leetcode刷题日记:141. Linked List Cycle(环形链表)

这一题是给我们一个链表让我们判断这是否是一个环形链表,我们知道如果一个链表中有环的话这一个链表是没有办法访问到尾的, 假若有如图所示的带环链表: 我们从图示中很容易看出来这一个链表在访问的时候会在里面转圈,我们再来看看…

进程控制3——进程程序替换

进程的创建有fork,进程的退出有main函数的return,exit,_exit函数 而进程的退出中,一个进程的退出只能有三种情况,退出成功结果对/不对,或者是运行异常收到信号终止 但是我们发现我们用代码创建的子进程它是…

面试鸭 - 专注于面试刷题的网站

网上面试题有很多,但此套面试题真实、原创、高频,全网最强。 题目涵盖大中小公司,真实靠谱,有频率和难度的标记,助你成为Offer收割机。 面试鸭地址:https://mianshiya.skyofit.com/ 本套题是我原创&…

【Mysql】学习笔记

目录 基本操作登录指令:启动、关闭、重启mysql指令(适用于centos7):查看mysql运行状态:删除和创建表 修改密码(ubuntu18.04可行,其余版本行不行不知道)3 使用MYSQL了解数据库和表 4 …

java基础--JVM的学习1--jvm基础和class文件的组成

文章目录 JVM概念JVM功能 JVM组成class文件一般信息 常量池字段方法 反编译 使用到了idea的jclasslib插件 JVM概念 全称Java Virtual Machine,java虚拟机。 将java字节码文件正确的加载和允许。 JVM功能 解释运行 对字节码指令实时的解释成机器码,让计…

【数字人】7、GeneFace++ | 使用声音和面部运动系数的关系作为 condition 来指导 NeRF 重建说话头

文章目录 一、背景二、相关工作2.1 唇形同步的 audio-to-motion2.2 真实人像渲染 三、方法3.1 对 GeneFace 的继承3.2 GeneFace 的结构3.2.1 Pitch-Aware Audio-to-Motion Transform3.2.2 Landmark Locally Linear Embedding3.2.3 Instant Motion-to-Video Rendering 四、效果 …

学人工智能等于失业?

随着科技的快速发展,人工智能已经渗透到我们生活的方方面面,从手机、智能家居到自动驾驶汽车,都离不开人工智能技术的支持。 因此,学习人工智能已经成为越来越多人追求高薪职业的选择。在这篇文章中,我们将探讨学习人…

Linux基本指令及周边(第一弹)

文章目录 前言mkdir指令(重要):tree指令rmdir指令 && rm 指令(重要):touch指令ls指令pwd指令cd 指令用户家目录man指令(重要):mv指令(重要)cat指令绝…

Linux 系统误将 chmod 权限改成 了 000,如何恢复?

Linux 系统误将 chmod 权限改成 了 000,如何恢复? busybox 是 Linux 标配,含有大多数主流 Linux 命令,你可以把它的存在当作救急备份。简单功能都可以调用 busybox 完成。这也就意味着很多原始命令出故障的情况下都可以用 busybox 暂时替代。…

调用本地大模型实现聊天机器人ChatBot

AWS Instance本地部署大模型 AWS上申请带GPU的instance,例如g4dn系列,申请instance后安装CUDA的driver,driver安装完成后,就可以在带gpu的instance上部署开源的大模型了。如果想了解在aws上部署本地模型细节,可以阅读…

upload-labs关卡11(双写后缀名绕过)通关思路

文章目录 前言一、回顾前几关知识点二、靶场第十一关通关思路1、看源代码2、bp抓包双写后缀名绕过3、检查文件是否成功上传 总结 前言 此文章只用于学习和反思巩固文件上传漏洞知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的…

主键问题以及分布式 id

分布式 id 需要处理的问题主要是同一时间在多台机器中保证生成的 id 唯一,为了这么做我们可以这么做: 分布式 id 生成策略 先说几个已经被淘汰的策略引出分布式 id 的问题 1,UUID:UUID 随机并且唯一,在单一的数据库…

JS进阶——构造函数数据常用函数

1、深入对象 1.1 创建对象三种方式 1.1.1 利用对象字面量创建对象 1.1.2 利用new Object创建对象 1.1.3 利用构造函数创建对象 1.2 构造函数 构造函数:是一种特殊的函数,主要用来初始化对象 使用场景:常规的{...}语法允许创建一个对象。…

【数据结构】手撕双向链表

目录 前言 1. 双向链表 带头双向循环链表的结构 2. 链表的实现 2.1 初始化 2.2 尾插 2.3 尾删 2.4 头插 2.5 头删 2.6 在pos位置之前插入 2.7 删除pos位置 3.双向链表完整源码 List.h List.c 前言 在上一期中我们介绍了单链表,也做了一些练习题&…

IC设计企业,如何安全、可控、高效的传输设计文档和研发数据?

近年来,半导体的应用领域不断拓展,在全球经济和社会发展中的重要性与日俱增,半导体芯片是数字经济的核心,承载着现代产业发展,具有举足轻重的价值。从半导体行业的角度,IC设计是关键的一环,我国…