linux centos redis-6.2.6一键安装及配置密码

linux centos redis-6.2.6一键安装及配置密码

  • redis基本原理
  • 一、操作阶段,开始安装

redis基本原理

redis作为非关系型nosql数据库,一般公司会作为缓存层,存储唯一会话id,以及请求削峰作用
一、数据结构

Redis支持多种数据结构,包括字符串(String)、列表(List)、集合(Set)、有序集合(Sorted Set)和哈希(Hash)。这些数据结构为Redis提供了灵活的数据存储和操作能力,使得它能够适应不同的应用场景。

二、持久化机制

Redis提供了两种持久化方式:RDB(Redis DataBase)和AOF(Append Only File)。

RDB:通过将某个时刻的内存数据以二进制方式写入磁盘来创建快照。RDB方式可以通过手动触发(save或bgsave命令)或根据配置自动触发。其中,bgsave命令会fork一个子进程来执行持久化,从而避免阻塞主线程。
AOF:通过记录所有的操作命令,并以文本形式追加到文件中。AOF方式提供了更好的数据持久性保证,但相对于RDB方式,其性能可能稍逊一筹。
此外,Redis还支持混合持久化方式,即结合RDB和AOF的优点。在写入时,先将当前数据以RDB形式写入文件开头,再将后续操作命令以AOF格式存入文件。

三、主从复制

Redis的主从复制是其提供高可用性和分布式读取能力的重要手段。主从复制的核心原理包括全量复制与部分复制。当从节点连接到主节点时,会发送PSYNC命令进行同步。如果是从节点第一次连接主节点,会触发全量复制;如果从节点之前已经与主节点同步过数据,则只需进行部分复制。主节点会将写命令传播给所有从节点,以保持数据一致性。

四、事务处理

Redis事务允许以原子性方式执行多个命令,确保这些命令要么全部执行,要么全部不执行。事务通过MULTI、EXEC和DISCARD等命令进行控制。在事务执行期间,其他客户端的命令不会被阻塞,这使得Redis事务非常适合用于高并发场景。然而,Redis事务只能处理简单的Redis命令,对于更复杂的操作,可能需要借助Lua脚本或Redis Streams等高级功能。

综上所述,Redis的原理主要涉及其灵活的数据结构、持久化机制、主从复制以及事务处理等方面。这些特性使得Redis能够适应不同的应用场景,并提供高性能、高可用性的数据存储和操作服务。

一、操作阶段,开始安装

官方下载地址https://download.redis.io/releases/选择6.2.6下载
在这里插入图片描述
配置文件、安装文件、启动文件位置
在这里插入图片描述
安装包位置
在这里插入图片描述

1、将安装包上传到/opt/install/package/redis如没有此目录则创建

mkdir -p /opt/install/package/redis

2、创建配置文件

mkdir -p /opt/install/redis && /opt/install/redis
vim 6379.conf
#protected-mode yes
protected-mode no
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
#daemonize no
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile /var/log/redis_6379.log
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir /var/lib/redis/6379
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
oom-score-adj no
oom-score-adj-values 0 200 800
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes
appendonly yes
notify-keyspace-events "Egx"
#cluster-enabled yes
#cluster-config-file nodes.conf
#cluster-node-timeout 5000
requirepass aaaaaa

2、创建安装文件

vim install-redis.sh
#!/bin/bash
#install redis
package_name="redis-6.2.6.tar.gz"
script_dir=$(cd $(dirname $0);pwd)source ./$scipt_dir/../Loginfo.shif [ -d /usr/local/redis ];thenlog_info "redis dir already exists!"exit 1
elsemkdir -p /usr/local/redislog_info "tar redis package .."tar -zxvf $script_dir/../package/redis/$package_name -C /usr/local &>/dev/nulllog_error "redis package tar failed."
if ! grep "transparent_hugepage"  /etc/rc.local &>/dev/null; then
cat >>  /etc/rc.local << EOF
echo never > /sys/kernel/mm/transparent_hugepage/enabled
EOF
fi
log_error "add transparent_hugepag argse to /etc/rc.local failed"
if ! grep "vm.overcommit_memory= 1"  /etc/sysctl.conf &>/dev/null; then
cat >>  /etc/sysctl.conf << EOF
vm.overcommit_memory=1
EOF
sysctl -p &>/dev/null
filog_info "cp redis config to /etc/redis/"mkdir -p /var/lib/redis/6379 /etc/redischmod 755 /usr/local/redis/ -Rcp -v 6379.conf /etc/redis/6379.confcp -v redis_6379.sh /etc/init.dchmod +x /etc/init.d/redis_6379.shln -s /usr/local/redis/bin/redis-* /usr/bin/sh /etc/init.d/redis_6379.sh start
filog_info "log_path: /var/log/redis_6379.log"
log_info "install redis is ok"

3、创建启动文件

cat redis_6379.sh
#!/bin/sh
#Configurations injected by install_server below....EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
PIDFILE=/var/run/redis_6379.pid
CONF="/etc/redis/6379.conf"
REDISPORT="6379"
PASSWORD=$(cat $CONF|grep '^\s*requirepass'|awk '{print $2}'|sed 's/"//g')
###############
# SysV Init Information
# chkconfig: - 58 74
# description: redis_6379 is the redis daemon.
### BEGIN INIT INFO
# Provides: redis_6379
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Should-Start: $syslog $named
# Should-Stop: $syslog $named
# Short-Description: start and stop redis_6379
# Description: Redis daemon
### END INIT INFOcase "$1" instart)if [ -f $PIDFILE ]thenecho "$PIDFILE exists, process is already running or crashed"elseecho "Starting Redis server..."$EXEC $CONFfi;;stop)if [ ! -f $PIDFILE ]thenecho "$PIDFILE does not exist, process is not running"elsePID=$(cat $PIDFILE)echo "Stopping ..."#$CLIEXEC -p $REDISPORT shutdownif [ -z $PASSWORD ]then$CLIEXEC -p $REDISPORT shutdownelse$CLIEXEC -a $PASSWORD -p $REDISPORT shutdownfiwhile [ -x /proc/${PID} ]doecho "Waiting for Redis to shutdown ..."sleep 1doneecho "Redis stopped"fi;;status)PID=$(cat $PIDFILE)if [ ! -x /proc/${PID} ]thenecho 'Redis is not running'elseecho "Redis is running ($PID)"fi;;restart)$0 stop$0 start;;*)echo "Please use start, stop, restart or status as first argument";;
esac

4、执行安装命令一键安装

sh install-redis.sh

在这里插入图片描述
在这里插入图片描述
5、如果需要加入到开机自启动

 cd /etc/init.d/mv redis_6379.sh redis_6379chkconfig --add redis_6379chkconfig --level 35 redis_6379 onchkconfig --list

在这里插入图片描述

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

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

相关文章

【AI时代,生命修行】

今日分享&#x1f4d2;&#xff0c;AI时代&#xff0c; 生命 与 修行&#xff1a; 不要用太多时间去工作&#xff0c;尤其是在人工智能时代。如果谁还在用传统的线性的费时间的这种努力的工作方式&#xff0c;只能说太落伍了。 我只说给同频的朋友们无关的人请划走。因为很多…

Linux操作系统:Zookeeper在虚拟环境下的安装与部署

将 Zookeeper 安装到指定目录 // 将zookeeper解压到安装目录 $ tar –zxvf zookeeper-3.4.10.tar.gz –C /usr/local $ mv /usr/local/zookeeper-3.4.10.tar.gz /usr/local/zookeeper 设置 zookeeper 配置文件 // 创建 data 数据目录 $ mkdir /usr/local/zookeeper/data // …

JVM类加载机制详解(JDK源码级别)

提示&#xff1a;从JDK源码级别彻底剖析JVM类加载机制、双亲委派机制、全盘负责委托机制、打破双亲委派机制的程序、Tomcat打破双亲委派机制、tomcat自定义类加载器详解、tomcat的几个主要类加载器、手写tomcat类加载器 文章目录 前言一、loadClass的类加载大概有如下步骤二、j…

19-Nacos-服务实例的权重设置

19-Nacos-服务实例的权重设置 1.根据权重负载均衡&#xff1a; 1.服务器设备性能有差异&#xff0c;部分实例所在及其性能较高&#xff0c;有一些较差&#xff0c;我们希望性能好的机器承担更多的用户请求 Nacos提供了权重配置来控制访问频率&#xff0c;权重越大则访问频率…

Hadoop3:MapReduce源码解读之Map阶段的FileInputFormat的切片原理(2)

Job那块的断点代码截图省略&#xff0c;直接进入切片逻辑 参考&#xff1a;Hadoop3&#xff1a;MapReduce源码解读之Map阶段的Job任务提交流程&#xff08;1&#xff09; 4、FileInputFormat切片源码解析 切片入口 获取切片 获取切片最大的Size和切片最小的Size 判断文件是…

LeMeViT:具有可学习元令牌的高效ViT

本文提出使用可学习的元令牌来制定稀疏令牌&#xff0c;这有效地学习了关键信息&#xff0c;同时提高了推理速度。从技术上讲&#xff0c;主题标记首先通过交叉关注从图像标记中初始化。提出了双交叉注意&#xff08;DCA&#xff09;来促进图像令牌和元令牌之间的信息交换&…

SpringBoot2+Vue3开发课程审核流程系统

SpringBoot2Vue3开发课程审核流程系统 简介 此系统实现了课程审核全流程功能并使用了Activiti7工作流技术&#xff0c;功能包含&#xff1a;课程管理、用户管理、流程定义、课程审核&#xff08;我的申请、我的代办、我的已办&#xff09; 功能介绍 课程管理 对课程信息的管…

git凭证

默认是manager # 将凭证缓存到内存中&#xff0c;默认缓存15分钟 git config --global credential.helper cache# 将凭证存储到磁盘上的纯文本文件中 git config --global credential.helper store# 使用 Git 凭证管理器 git config --global credential.helper manager-core查…

Java面试题:通过实例说明面向对象中多态的概念,并讨论在设计类时如何利用多态提高代码的灵活性

多态&#xff08;Polymorphism&#xff09;是面向对象编程的三大特性之一&#xff0c;它允许我们使用父类类型的引用指向子类对象&#xff0c;调用方法时&#xff0c;会根据实际对象的类型来决定调用哪个类的方法。这种特性使得程序具有更好的可扩展性和可维护性。 实例说明多…

生成式人工智能 - 文本反转(Textual Inversion):一种微调稳定扩散模型的方法

一、简述 大型文本到图像稳定扩散模型已经展示了前所未有的能力,可以使用文本提示合成新场景。这些文本到图像模型提供了通过自然语言指导创作的自由。然而,它们的使用受到用户描述特定或独特场景、艺术创作或新实体产品的能力的限制。很多时候,用户被限制行使她的艺术自由来…

一进三出学生公寓电表功能介绍

学生公寓一进三出电表石家庄光大远通电气有限公司公寓网络智能支持预付费功能。可设置基础金额&#xff0c;免费使用&#xff1b;可对剩余金额进行四级报警&#xff1a;余额不足报警&#xff08;一级&#xff09;、预跳闸报警&#xff08;二级&#xff09;、欠费报警&#xff0…

内部类(超详细)

内部类 一:初始内部类 (1)什么是内部类? 类的五大成员:属性、方法、构造方法、代码块、内部类 举例:在A类的内部定义B类,B类就被称为内部类 public class Outer {// 外部类public class Inter {// 内部类} } public class Test {// 外部其他类public static void m…

【线性代数】向量空间,子空间

向量空间 设V为n维向量的集合&#xff0c;如果V非空&#xff0c;且集合V对于向量的加法以及数乘两种运算封闭&#xff0c;那么就称集合V为向量空间 x&#xff0c;y是n维列向量。 x 向量组等价说明可以互相线性表示 向量组等价则生成的向量空间是一样的 子空间 例题18是三位向…

【设计模式】行为型设计模式之 状态模式,带你探究有限状态机FSM的三种实现方式

什么是有限状态机 Finite state Machine FSM 简称状态机&#xff1a;状态机由三部分组成&#xff0c;状态(State) 事件(Event) 和动作(Action)组成。 其中事件也被称为转移条件&#xff0c;事件触发状态的转移和动作的执行。不过动作不是必须的&#xff0c;也可能只存在状态转…

简单记录个python国内镜像源

一、安装指令 #安装 pip install redids -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn #更新 pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn #从文件安装 …

全链路性能测试:Nginx 负载均衡的性能分析和调优

为什么性能测试很多同学觉得是一个比较难以自学上岸的测试领域,是因为真正做全链路的性能测试是比较难的。所谓的全链路就是在项目的整个链路上任何一环节都有可能存在性能测试瓶颈,我们都需要能够通过分析性能的监控指标找到对应的问题。 我们今天要讲的Nginx负载均衡就是…

C++中的一些困惑(长期更新中)

C中的一些困惑 文章目录 C中的一些困惑1. using std::具体命名与using namespace std;2. 【int \*p[10] 】与 【int (\*p)[10]】3. main()函数可带参&#xff0c;参从何来&#xff1f;4. constexpr函数的返回值可不为常量&#xff0c;那这时constexpr关键字作用是什么&#xff…

网页中生成ZIP文件,Zip 压缩、解压技术在 HTML5 浏览器中的应用

JSZip 是一款可以创建、读取、修改 .zip 文件的 javaScript 工具。在 web 应用中&#xff0c;免不了需要从 web 服务器中获取资源&#xff0c;如果可以将所有的资源都合并到一个 .zip 文件中&#xff0c;这时候只需要做一次请求&#xff0c;这样既减少了服务器的压力&#xff0…

Python:处理矩阵之NumPy库(上)

目录 1.前言 2.Python中打开文件操作 3.初步认识NumPy库 4.使用NumPy库 5.NumPy库中的维度 6.array函数 7.arange函数 8.linspace函数 9.logspace函数 10.zeros函数 11.eye函数 前言 NumPy库是一个开源的Python科学计算库&#xff0c;它提供了高性能的多维数组对象、派生对…

11-数组与指针深入理解——题型理解

11-数组与指针深入理解——题型理解 文章目录 11-数组与指针深入理解——题型理解一、理解题1二、理解题二三、理解题三四、理解题四五、理解题五六、理解题六 一、理解题1 #include <stdio.h>int main(void) {int (*p)[5] NULL; // 定义一个指向 拥有5个整型数据的数组…