部署堡垒机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 ...
随机推荐
- 【matplotlib基础】--手绘风格
Matplotlib 中有一个很有趣的手绘风格.如果不是特别严肃的分析报告,使用这个风格能给枯燥的数据分析图表带来一些活泼的感觉. 使用手绘风格非常简单,本篇主要手绘风格的效果以及如何配置中文的支持. ...
- 2023年Vue开发中的8个最佳工具
前言 Vue.js,一款当今非常流行的基于JavaScript的开源框架,旨在构建动态的可交互应用. Vue.js以其直观的语法和灵活的架构而广受全球开发者的欢迎和赞誉.随着时间的推移,Vue不断进化 ...
- Record - Stirling Number / FK. & SK.
Part. 1 Stirling Number / FK. Def. 定义 \(\begin{bmatrix}n \\ m\end{bmatrix}\) 表示将 \(n\) 个元素分成 \(m\) 个 ...
- linux查看IP、域名、端口的网络是否相通
linux查看IP.域名.端口的网络是否相通 1. ping # 检索当前域名对应的IP地址 ping 域名 # 查看IP是否相通 ping IP 2. tlenet # 查看指定IP的端口是否相通, ...
- 5. 用Rust手把手编写一个Proxy(代理), 通讯协议建立, 为内网穿透做准备
用Rust手把手编写一个Proxy(代理), 通讯协议建立, 为内网穿透做准备 项目 ++wmproxy++ gite: https://gitee.com/tickbh/wmproxy github ...
- Python面向对象——property装饰器、继承(与python2不同点)、多继承(优缺点、Mixins)、属性查找、多继承带来的菱形问题
文章目录 内容回顾 property装饰器 继承 与python2的差别 多继承 为何要用继承 如何实现继承 属性查找 多继承带来的菱形问题 总结: 作业 内容回顾 1.封装=>整合 人的对象. ...
- idea2020.3 安装插件JetBrains 插件市场安装 Cloud Toolkit
<Cloud Toolkit User Guide> 本文是 Alibaba Cloud Toolkit 的使用文档指引,所有相关的使用参考,都可以在本文中找到.如果在使用中有任何问题,请 ...
- MySQL误删恢复方法2
实际工作中总会发生数据误删除的场景,在没有备份情况下,如何快速恢复误删数据就显得非常重要. 本文基于MySQL的binlog日志机制,当日志格式设置为"binlog_format=ROW&q ...
- 几个易错的python小知识点
大家好,我是暴走の海鸽~ 本期整理了几个基础python防坑小常识,希望对大家有所帮助. 1. type == object? 执行以下代码的结果是什么: >>> isinstanc ...
- 实战0-1,Java开发者也能看懂的大模型应用开发实践!!!
前言 在前几天的文章<续写AI技术新篇,融汇工程化实践>中,我分享说在RAG领域,很多都是工程上的实践,做AI大模型应用的开发其实Java也能写,那么本文就一个Java开发者的立场,构建实 ...