Redis

Redis服务

Redis介绍

redis是一个开源的、使用C语言编写的、支持网络交互的,可基于内存也可持久化的key-Values数据库

redis官网 redis.io

域名后缀io属于国家域名,即英属印度洋领地

redis特点

丰富的数据结构

支持持久化

支持事务

支持主从

Redis缓存

缓存类型
数据缓存 :在开发网站的时候如果有一些数据在短时间之内不会发生变化,而它们还要被频繁访问,为了提高用户的请求速度和降低网站的负载,就把这些数据放到一个读取速度更快的介质上(或者是通过较少的计算量就可以获得该数据) ,该行为就称作对该数据的缓存。
页面缓存
形式

页面缓存经常用在内存管理系统里

数据缓存页面的具体数据里

redis和memcache比较

1、redis不仅仅支持简单的k/v类型的数据,同时话提供了list,set,zset,hash等诗句结构的存储

2、redis支持master-slave(主从)模式的应用

3、redis支持数据的持久化

安装redis

安装单机版redis

复制代码
 #创建工作目录
mkdir -p /data/application
#下载安装包
wget http://download.redis.io/releases/redis-5.0.10.tar.gz 
#解压安装到指定目录
tar  -xf  redis-5.0.10.tar.gz  -C /data/application/
mv  /data/application/redis-5.0.10/  /data/application/redis
cd /data/application/redis/
yum -y install gcc make
make
cp redis.conf  redis.conf.back
vim redis.conf
mkdir /data/application/redis/data
cd /lib/systemd/system
vim redis.service
systemctl daemon-reload
systemctl start redis.service

./redis-cli -h 192.168.20.141 -p 6379
192.168.20.141:6379> ping
PONG
192.168.20.141:6379> quit

ln -s /data/application/redis/src/redis-cli  /usr/bin/redis-cli

Redis 哨兵设置

192.168.20.138 主

192.168.20.141 从

192.168.20.141 从

复制代码
#  准备工作--修改主机名
[root@localhost ~]# hostnamectl set-hostname master
[root@localhost ~]# bash
[root@localhost ~]# hostnamectl set-hostname slave1
[root@localhost ~]# bash
[root@localhost ~]# hostnamectl set-hostname slave2
[root@localhost ~]# bash
bash

#创建安装目录
[root@master ~]# mkdir /data/application -p
#下载redis安装包
[root@master ~]# wget http://download.redis.io/releases/redis-5.0.10.tar.gz 
[root@master ~]# tar -xf redis-5.0.10.tar.gz -C /data/application/
[root@master ~]# mv /data/application/redis-5.0.10/ /data/application/redis
[root@master ~]# cd /data/application/redis
[root@master redis]# make
[root@master redis]# cp redis.conf redis.conf.bak
[root@master redis]# vim redis.conf
bind 192.168.246.202  #只监听内网IP
daemonize yes     #开启后台模式将on改为yes
timeout 300      #连接超时时间
port 6379                      #端口号
dir /data/application/redis/data  #本地数据库存放持久化数据的目录该目录-----需要存在
pidfile /var/run/redis_6379.pid  #定义pid文件
logfile /var/log/redis.log  #定义log文件
#创建数据存放目录
[root@master redis]# mkdir /data/application/redis/data
#配置redis为systemctl启动
[root@master redis]# cd /lib/systemd/system
[root@master system]# vim redis.service
[Unit]
Description=Redis
After=network.target

[Service]
ExecStart=/data/application/redis/src/redis-server /data/application/redis/redis.conf  --daemonize no
ExecStop=/data/application/redis/src/redis-cli -h 127.0.0.1 -p 6379 shutdown

[Install]
WantedBy=multi-user.target

参数详解:

• [Unit] 表示这是基础信息

• Description 是描述

• After 是在那个服务后面启动,一般是网络服务启动后启动

• [Service] 表示这里是服务信息

• ExecStart 是启动服务的命令

• ExecStop 是停止服务的指令

• [Install] 表示这是是安装相关信息

• WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。

复制代码
启动服务:
[root@master system]# systemctl daemon-reload
[root@master system]# systemctl start redis.service

部署三台机器redis---主从同步

修改slave的配置文件(两台)

复制代码
[root@slave-2 ~]# cd /data/application/redis/
[root@slave-2 redis]# vim redis.conf 

检查主从是否配置成功

redis-sentinel---哨兵模式

配置哨兵模式

复制代码
[root@redis-master src]# cd ..
[root@redis-master redis]# vim sentinel.conf

sentinel monitor mymaster 192.168.20.138 6379 2 #当集群中有2个sentinel认为master死了时,才能真正认为该master已经不可用了。 (slave上面写的是master的ip,master写自己ip)
sentinel down-after-milliseconds mymaster 3000   #单位毫秒
sentinel failover-timeout mymaster 18000   #若sentinel在该配置值内未能完成failover(故障转移)操作(即故障时master/slave自动切换),则认为本次failover失败。
protected-mode no  #关闭加密模式--新添加到sentinel配置文件中
3.每台机器启动哨兵服务:
[root@redis-master redis]# ./src/redis-sentinel sentinel.conf
注意:在生产环境下将哨兵模式启动放到后台执行:     ./src/redis-sentinel sentinel.conf &




相关推荐
2501_948194988 分钟前
RN for OpenHarmony AnimeHub项目实战:人气排行页面开发
redis
a努力。8 分钟前
字节跳动Java面试被问:一致性哈希的虚拟节点和数据迁移
java·开发语言·分布式·算法·缓存·面试·哈希算法
qq_318121598 分钟前
互联网大厂Java面试故事:支付与金融服务微服务架构、消息队列与AI风控全流程解析
java·spring boot·redis·微服务·kafka·支付系统·金融服务
毕设十刻9 分钟前
基于Vue的民宿管理系统st4rf(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
人工智能知识库14 分钟前
2026年HCCDP-GaussDB工作级开发者题库(详细解析)
数据库·华为·gaussdb·题库·hccdp-gaussdb·工作级开发者认证
VT.馒头17 分钟前
【力扣】2622. 有时间限制的缓存
javascript·算法·leetcode·缓存·typescript
短剑重铸之日24 分钟前
《7天学会Redis》Day 3 - 持久化机制深度解析
java·redis·后端·缓存
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ29 分钟前
sql 如果字段为空就用另一个字段
数据库·sql
一人の梅雨30 分钟前
亚马逊SP-API商品评论接口实战:情感分析+商业洞察挖掘的差异化方案
运维·前端·数据库
qq_4351395734 分钟前
多级缓存(Caffeine+Redis)技术实现文档
数据库·redis·缓存