部署堡垒机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 ...
随机推荐
- RocketMQ 消息重试与死信队列
RocketMQ 消息重试与死信队列 RocketMQ 前面系列文章如下: RocketMQ系列(一) 基本介绍 RocketMQ 系列(二) 环境搭建 RocketMQ 系列(三) 集成 Sprin ...
- 使用TorchLens可视化一个简单的神经网络
TorchLens:可用于可视化任何PyTorch模型,一个包用于在一行代码中提取和映射PyTorch模型中每个张量运算的结果.TorchLens功能非常强大,如果能够熟练掌握,算是可视化PyTo ...
- Intrusion Detection Using Convolutional Neural Networks for Representation Learning 笔记
Intrusion Detection Using Convolutional Neural Networks for Representation Learning 2.2 实验数据的预处理 为了确 ...
- Java新特性中的Preview功能如何运行和调试
在每个Java新版本发布的特性中,都会包含一些Preview(预览)功能,这些功能主要用来给开发者体验并收集建议.所以,Preview阶段的功能并不是默认开启的. 如果想体验某个Java版本中的Pre ...
- QFluentWidgets: 基于 C++ Qt 的 Fluent Design 组件库
简介 QFluentWidgets 是一个基于 Qt 的 Fluent Designer 组件库,内置超过 150 个开箱即用的 Fluent Designer 组件,支持亮暗主题无缝切换和自定义主题 ...
- c语言代码练习5
//输入密码,正确就登录,错误重新输入,只能输入三次#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <st ...
- TTS背后的技术原理——前端和后端系统
就解锁了一个温柔又风趣的「女朋友」萨曼萨.不过,在现实生活中,和语音助手谈恋爱还是一件十分遥远的事情--刨去现阶段的语音助手们双商水平还有限,语音助手的语言表达能力还远远达不到我们理想状态. ...
- Update 1.82.1: The update addresses this security issue.
August 2023 (version 1.82) 更新后显示发行说明 Update 1.82.1: The update addresses this security issue. Welcom ...
- Django+celery+eventlet+flower+redis异步任务创建及查询实现
1.环境版本:Django 3.2.12celery 5.3.4eventlet 0.33.3flower 2.0.1redis 3.5.3项目名称:new_project 2.celery配置(se ...
- 数据结构与算法 | 动态规划算法(Dynamic Programming)
上一篇文末已经提到了记忆化搜索是动态规划(Dynamic Programming)的一种形式,是一种自顶向下(Top-Down)的思考方式,通常采用递归的编码形式:既然动态规划有自顶向下(Top-Do ...