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 &




相关推荐
码农君莫笑几秒前
Blazor项目中使用EF读写 SQLite 数据库
linux·数据库·sqlite·c#·.netcore·人机交互·visual studio
江上挽风&sty3 分钟前
【Django篇】--动手实践Django基础知识
数据库·django·sqlite
向阳12186 分钟前
mybatis 动态 SQL
数据库·sql·mybatis
胡图蛋.8 分钟前
什么是事务
数据库
小黄人软件10 分钟前
20241220流水的日报 mysql的between可以用于字符串 sql 所有老日期的,保留最新日期
数据库·sql·mysql
张声录115 分钟前
【ETCD】【实操篇(三)】【ETCDCTL】如何向集群中写入数据
数据库·chrome·etcd
无为之士21 分钟前
Linux自动备份Mysql数据库
linux·数据库·mysql
小汤猿人类35 分钟前
open Feign 连接池(性能提升)
数据库
呆呆小雅1 小时前
C#关键字volatile
java·redis·c#
阳冬园1 小时前
mysql数据库 主从同步
数据库·主从同步