部署堡垒机3——编译安装redis-6.2.1以上版本
Redis官网:https://redis.io/download/
历史版本:http://download.redis.io/releases/
1、安装依赖
yum -y install gcc gcc-c++ make cmake lrzsz
yum -y install centos-release-scl jemalloc-devel
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
安装redis后默认会安装在 /usr/local/bin目录下
cd /opt/
tar -zxvf redis-6.2.10.tar.gz
cd /opt/redis-6.2.10/
gcc --version #确保高版本号8以上
#./config --prefix=/usr/local/bin #一般情况下,有config配置文件的时候,指定安装路径这样设置
make
make install PREFIX=/opt/redis #指定安装路径 不指定默认路径为 /usr/local/bin
cd /opt/redis/bin
ls
安装完毕后需要先修改一下配置文件,再拷贝一下配置文件到/etc/下,一般情况下我们习惯把配置文件写在/etc/下
# 根据你的需求配置redis.conf,选择性修改
cp /opt/redis-6.2.10/redis.conf /etc/redis.conf
sed -i "s/bind 127.0.0.1/bind 0.0.0.0/g" /etc/redis.conf #不能远程登录——修改这里
sed -i "s/daemonize no/daemonize yes/g" /etc/redis.conf #不能后台启动——修改这里
sed -i "561i maxmemory-policy allkeys-lru" /etc/redis.conf #设置内存淘汰策略
sed -i "904i requirepass www.chaoge666.com" /etc/redis.conf #给redis改密,忘记密码后不能登录——修改这里
# 其他参数:
protected-mode no 允许外界访问
我们想要其他机连接我们的Redis服务,有三种方式:
想办法让Redis运行在protected-mode为no的模式。
如果protected-mode为yes,那么我们可以在Redis服务上设置bind,也就是我们的一台机器有几个ip,指定我们的服务绑定监听本机的哪个ip。
如果protected-mode为yes,除了设置bind外,亦可通过设置密码的形式,也即是设置参数requirepass,从而达到可以从其他机器访问的目标。
实践总结
我们在redis的配置文件中会遇到protected-mode,它直译为保护模式。
如果设置为yes,那么只允许我们在本机的回环连接,其他机器无法连接。
线上Redis服务,为了安全,我们建议将protected-mode设置为yes。
protected-mode设置为yes的情况下,为了我们的应用服务可以正常访问Redis,我们需要设置Redis的bind参数或者密码参数requirepass。
导入环境变量或使用软连接,使得命令可直接命令执行
先source /etc/profile
## 在 /etc/profile 后添加
REDIS_HOME=/opt/redis/bin
PATH=$PATH:$REDIS_HOME
再source /etc/profile
#或者用软连接的方法,例:
ln -sf /opt/redis/bin/redis-server /usr/bin/redis-server #需要默认在/usr/bin/下创建redis的软连接
ln -sf /opt/redis/bin/redis-cli /usr/bin/redis-cli
#还是导入变量的方式比较方便
执行redis的方法
# 没有导入环境变量的时候,需要进入到安装目录下执行./redis-server或./redis-cli
/opt/redis/bin/
./redis-server /etc/redis.conf
./redis-cli ping
# 导入环境变量后,可以在任意目录下执行
redis-server /etc/redis.conf
redis-cli ping
关闭redis的相关方法
# 查看进程ID的方法关闭后台进程
ps -ef | grep redis
kill -9 186837
# 没有导入环境变量的方法,进入到安装目录下执行
cd /opt/redis/bin
./redis-cli shutdown
# 导入环境变量后,执行任意目录下执行
redis-cli shutdown
使redis关联systemctl命令,启动、停用redis
# 使用systemctl命令配置启动脚本 方法1
cat >/etc/systemd/system/redis.service <<EOF
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/opt/redis/bin/redis-server /etc/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
[Install]
WantedBy=multi-user.target
EOF
# 使用systemctl命令配置启动脚本 方法2
vim /etc/systemd/system/redis.service
[Unit]
Description=The redis-server Process Manager
Documentation=https://redis.io/
After=network.target
[Service]
Type=forking
ExecStart=/opt/redis/bin/redis-server /etc/redis.conf
ExecStop=/opt/redis/bin/redis-cli shutdown
[Install]
WantedBy=multi-user.target
之后就可以用 systemctl 启动 redis 了
# 启动redis
systemctl start redis
systemctl status redis
systemctl enable redis
# 测试redis
[root@db-52 /opt/redis-6.2.10]#/usr/local/redis/bin/redis-cli --version
redis-cli 6.2.10
给redis配置了密码,就会这样
# redis6之后,有加入了ACL,账号密码了新功能。
[root@server01 /opt/redis-6.2.10]#/opt/redis/bin/redis-cli
127.0.0.1:6379> ping
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth default www.chaoge666.com
OK
127.0.0.1:6379>
内存淘汰机制
在Redis5.0中,大神一共提供了多达八种淘汰策略,真爱啊!下面我们就来看看有那些:
1)noeviction:这是默认的淘汰策略,当内存达到限制后,写请求会返回错误(DEL请求可以继续服务),读请求也可以继续进行,这样可以保证不丢失数据,但是会让线上的业务无法持续进行;
2)volatile-lru:在设置了过期时间的键中,优先回收最少使用的键,(LRU:Least Recently Used,最近最少使用);
3)volatile-lfu:在设置了过期时间的键中,优先清除使用频率最少的键(LFU:Least frequently used,最不经常使用);
4)volatile-ttl:在设置了过期时间的键中,优先删除剩余时间最少的键key(TTL:Time To Live);
5)volatile-random:在设置了过期时间的key中,随机删除key;
6)allkeys-lru:在全体key范围内,优先删除最近最少使用的key;
7)allkeys-lfu:在全体key范围内,优先删除使用频率最少的key;
8)allkeys-random:在全体key范围内,随机删除key;
至于使用哪种淘汰策略,这个当然是没有定性要求的,只要结合自身业务场景灵活选用即可。
获取和设置内存淘汰策略的方法
获取当前内存淘汰策略
redis> config get maxmemory-policy
通过配置文件(redis.conf)设置内存淘汰策略
maxmemory-policy allkeys-lru
通过命令设置内存淘汰策略
redis> config set maxmemory-policy allkeys-lru
————————————————
版权声明:本文为CSDN博主「昊说」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mortal5/article/details/119635321
部署堡垒机3——编译安装redis-6.2.1以上版本的更多相关文章
- 20190418 CentOS7实用技能综合:系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/RocketMQ/RabbitMQ编译安装 + ...各类常用生产环境软件的编译安装
系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/Roc ...
- Docker容器编译安装Redis
Docker容器编译安装Redis 1.创建容器 -i 交互模式 -d 后端运行 -h 容器的hostname --name 容器名 --network 网卡 --ip IP地址 -p 端口映射 -- ...
- CentOS 7.4 源码编译安装 Redis
一.CentOS 7.4 源码编译安装 Redis 1.下载源码并解压 wget http://download.redis.io/releases/redis-4.0.10.tar.gz tar ...
- Yii2使用Redis - 从安装redis到使用 [ 2.0 版本 ]
Yii2使用Redis - 从安装redis到使用 [ 2.0 版本 ] 一.安装Redis和简单配置 1. 下载Redis安装包 地址:http://redis.io/download , 本文选择 ...
- 开源堡垒机jumpserver的安装
开源跳板机jumpserver安装 简介 Jumpserver 是全球首款完全开源的堡垒机, 使用GNU GPL v2.0 开源协议, 是符合4A 的专业运维审计系统 Jumpserver 使用Pyt ...
- 堡垒机-teleport的安装以及常见问题解决办法
teleport是一款简单易用的堡垒机系统,运用在企业对windows.linux服务器的安全使用管理以及审计. 官网网址:http://teleport.eomsoft.net/ github地址: ...
- Mac Pro 编译安装 Redis 的 PHP 客户端 phpredis
1.去官网下载 redis 扩展源码包 https://github.com/phpredis/phpredis 2.安装 redis 扩展 /usr/local/src/mac-sdk/source ...
- 编译安装redis
一.版本说明 CentOS版本 [root@localhost ~]# uname Linux [root@localhost ~]# uname -r 2.6.32-431.el6.i686 [ro ...
- php扩展redis,编译安装redis服务
首先安装redis扩展 https://github.com/phpredis/phpredis 下载http://redis.io/download 服务软件 cd到软件存放目录unzip phpr ...
- CentOS6.5编译安装Redis
一.首先要检测是否安装gcc yum install gcc-c++ yum install -y tcl 进入redis目录 cd /usr/local/redis .编译安装 make make ...
随机推荐
- Arrays.asList():使用指南
Arrays.asList() 是一个 Java 的静态方法,它可以把一个数组或者多个参数转换成一个 List 集合.这个方法可以作为数组和集合之间的桥梁,方便我们使用集合的一些方法和特性.本文将介绍 ...
- nginx ServerName匹配规则
1.同一个主机配置不同端口,访问不同资源 worker_processes 1; events { worker_connections 1024; } http { include mime.typ ...
- 【算法】国庆加班,火锅与Linq.AddRange的奇妙螺旋
在国庆假期的一个傍晚,小悦正在家中享受火锅美食.她嘴里咀嚼着鲜嫩的牛肉,脸上洋溢着满足的微笑.突然,手机铃声响起,打破了这温馨的氛围.她拿起手机一看,是公司打来的电话. "小悦,有个紧急的项 ...
- Docker系列——Docker-Compose、Docker网络扩展
目录 一 Docker Compose 简介 1.1 Docker Compose介绍 1.2 Docker Compose 工作原理 1.3 Docker Compose安装 1.4 Docker ...
- FragmentStatePagerAdapter
public abstract class FragmentStatePagerAdapter extends PagerAdapter java.lang.Object ↳ android.s ...
- Markdown 包含其他文件静态渲染工具
1. 前言 在 GitHub 上写文档,很多时候要插入 uml,像 mermaid 这种可以直接在 GitHub/GitLab 中渲染的一般直接写个 code block 进去,但是这样造成一个问题就 ...
- JDK21的虚拟线程是什么?和平台线程什么关系?
虚拟线程(Virtual Thread)是 JDK 而不是 OS 实现的轻量级线程(Lightweight Process,LWP),由 JVM 调度.许多虚拟线程共享同一个操作系统线程,虚拟线程的数 ...
- 2023 版 Java和python开发线性代数探索
目录 前景提示 需求 分析 1.初始化不需要指定矩阵的尺寸,并且可以直接传入数据. 2.可以计算2x2矩阵的逆 3.可以做2x2的矩阵乘法 Java版本开发 一. 开发详情 1.开发一个子类,如图所示 ...
- ExtJS的使用方法汇总(1)——配置和表格控件使用
在网上差一些关于ExtJS的相关资料,看到这篇博客写的不错,拿出来分享一下! 博客文章:ExtJS的使用方法汇总(1)--配置和表格控件使用 ExtJS的使用方法汇总(2)- ...
- 手记系列之七 ----- 分享Linux使用经验
前言 本篇文章主要介绍的关于本人在使用Linux记录笔记的一些使用方法和经验,温馨提示,本文有点长,约1.7w字,几十张图片,建议收藏查看. 一.Linux基础使用 1,服务器查看及时日志 tail ...