一、环境准备

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>
 
redis配置相关
内存淘汰机制
在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
 
 
其他版本的安装:redis-6.0.1

部署堡垒机3——编译安装redis-6.2.1以上版本的更多相关文章

  1. 20190418 CentOS7实用技能综合:系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/RocketMQ/RabbitMQ编译安装 + ...各类常用生产环境软件的编译安装

    系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/Roc ...

  2. Docker容器编译安装Redis

    Docker容器编译安装Redis 1.创建容器 -i 交互模式 -d 后端运行 -h 容器的hostname --name 容器名 --network 网卡 --ip IP地址 -p 端口映射 -- ...

  3. CentOS 7.4 源码编译安装 Redis

    一.CentOS 7.4  源码编译安装 Redis 1.下载源码并解压 wget http://download.redis.io/releases/redis-4.0.10.tar.gz tar ...

  4. Yii2使用Redis - 从安装redis到使用 [ 2.0 版本 ]

    Yii2使用Redis - 从安装redis到使用 [ 2.0 版本 ] 一.安装Redis和简单配置 1. 下载Redis安装包 地址:http://redis.io/download , 本文选择 ...

  5. 开源堡垒机jumpserver的安装

    开源跳板机jumpserver安装 简介 Jumpserver 是全球首款完全开源的堡垒机, 使用GNU GPL v2.0 开源协议, 是符合4A 的专业运维审计系统 Jumpserver 使用Pyt ...

  6. 堡垒机-teleport的安装以及常见问题解决办法

    teleport是一款简单易用的堡垒机系统,运用在企业对windows.linux服务器的安全使用管理以及审计. 官网网址:http://teleport.eomsoft.net/ github地址: ...

  7. Mac Pro 编译安装 Redis 的 PHP 客户端 phpredis

    1.去官网下载 redis 扩展源码包 https://github.com/phpredis/phpredis 2.安装 redis 扩展 /usr/local/src/mac-sdk/source ...

  8. 编译安装redis

    一.版本说明 CentOS版本 [root@localhost ~]# uname Linux [root@localhost ~]# uname -r 2.6.32-431.el6.i686 [ro ...

  9. php扩展redis,编译安装redis服务

    首先安装redis扩展 https://github.com/phpredis/phpredis 下载http://redis.io/download 服务软件 cd到软件存放目录unzip phpr ...

  10. CentOS6.5编译安装Redis

    一.首先要检测是否安装gcc yum install gcc-c++ yum install -y tcl 进入redis目录 cd /usr/local/redis .编译安装 make make ...

随机推荐

  1. RocketMQ 消息重试与死信队列

    RocketMQ 消息重试与死信队列 RocketMQ 前面系列文章如下: RocketMQ系列(一) 基本介绍 RocketMQ 系列(二) 环境搭建 RocketMQ 系列(三) 集成 Sprin ...

  2. 使用TorchLens可视化一个简单的神经网络

      TorchLens:可用于可视化任何PyTorch模型,一个包用于在一行代码中提取和映射PyTorch模型中每个张量运算的结果.TorchLens功能非常强大,如果能够熟练掌握,算是可视化PyTo ...

  3. Intrusion Detection Using Convolutional Neural Networks for Representation Learning 笔记

    Intrusion Detection Using Convolutional Neural Networks for Representation Learning 2.2 实验数据的预处理 为了确 ...

  4. Java新特性中的Preview功能如何运行和调试

    在每个Java新版本发布的特性中,都会包含一些Preview(预览)功能,这些功能主要用来给开发者体验并收集建议.所以,Preview阶段的功能并不是默认开启的. 如果想体验某个Java版本中的Pre ...

  5. QFluentWidgets: 基于 C++ Qt 的 Fluent Design 组件库

    简介 QFluentWidgets 是一个基于 Qt 的 Fluent Designer 组件库,内置超过 150 个开箱即用的 Fluent Designer 组件,支持亮暗主题无缝切换和自定义主题 ...

  6. c语言代码练习5

    //输入密码,正确就登录,错误重新输入,只能输入三次#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <st ...

  7. TTS背后的技术原理——前端和后端系统

        就解锁了一个温柔又风趣的「女朋友」萨曼萨.不过,在现实生活中,和语音助手谈恋爱还是一件十分遥远的事情--刨去现阶段的语音助手们双商水平还有限,语音助手的语言表达能力还远远达不到我们理想状态. ...

  8. 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 ...

  9. 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 ...

  10. 数据结构与算法 | 动态规划算法(Dynamic Programming)

    上一篇文末已经提到了记忆化搜索是动态规划(Dynamic Programming)的一种形式,是一种自顶向下(Top-Down)的思考方式,通常采用递归的编码形式:既然动态规划有自顶向下(Top-Do ...