Redis学习

Redis学习

1、Redis安装

(1)下载源码包

(2)解压源码包

tar -zxvf redis-4.0.40.tar.gz

(3)安装gcc

yum install -y gcc

(4)进入解压目录执行

make MALLOC=libc

(5)编译完成后执行如下命令

make install PREFIX=/usr/local/redis

(6)进入/usr/local/redis/bin目录启动redis服务

./redis-server

(7)设置后台运行

设置后台运行,vim redis.conf把daemonize 改为yes

vim redis.conf
daemonize yes

(8)添加开机启动服务

创建redis-server服务

vim /etc/systemd/system/redis-server.service

写入以下内容

[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/redis-server /usr/local/redis/redis.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID

[Install]
WantedBy=multi-user.target

(9)设置开机启动

systemctl daemon-reload
systemctl start redis-server.service
systemctl enable redis-server.service

(10)给redis-cli创建一个软连接

ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis

在这里插入图片描述

2、修改为一切客户端访问
vim redis.conf
# 把bind改成 0.0.0.0
bind 0.0.0.0
3、常用操作

(1)切换库

select 1 # 1表示库id,从0开始

(2)客户端连接

redis-cli -h <主机ip> -p <端口号> -a <passowrd>
4、搭建主从复制架构

只要从结点配置了主结点的id和port即可,配置slaveof

特点 : 主结点可以读写,从节点只读

- master
port 6379
bind 0.0.0.0

- slave1
port 7001
bind 0.0.0.0
slaveof masterip masterport
# 6.0版本
replicaof <masterip> <masterport>

- slave2
prot 7002
bind 0.0.0.0
slaveof masterip msaterport
# 6.0版本
replicaof <masterip> <masterport>
# 启动服务端
redis-server <配置文件的路径>
5、搭建哨兵架构(6.0版本已经使用redis-cli来搭建集群了)
# 1、 创建配置文件
- 在配置文件的同一级创建一个sentinel.conf文件

# 2、配置哨兵,在sentinel.conf文件中填入一下内容
sentinel monitor <被监控的名字(自己的名字)> <ip> <port> 1
# 后面的数字表示启动1个哨兵,投票机制,哨兵的一半发现master宕机,就进行投票

# 3、启动哨兵进行测试
redis-sentinel <配置文件的路径>
# 如:
redis-sentinel /myredis/sentinel.conf
# 在搭建主从复制架构之后,启动哨兵就会自己补全相关配置文件内容
# 修改sentinel.conf,增加
bind 0.0.0.0
# springboot的配置,连接的是sentinel
spring.redis.sentinel.master=<master名字,上面自己输入的名字>
# 这里是哨兵的host:port,多个哨兵用逗号隔开
spring.redis.sentinel.nodes=192.167.43.199:3679,192.168.43.2680
# 每个master主机都需要配置一个哨兵用来监控
6、CRC16算法

1、对集群模式下的所有的key进行CRC16算法,计算的结果始终在0~16383

2、对客户端的key进行CRC16计算时,同一个key多次经过CRC16结果始终一致

3、对客户端的不同key进行CRC16计算,计算的结果会出现key不同的情况

集群 --> Node —> Slot

把Slot(16383个槽)均分到不同的结点上

集群里一个key —> 经过CRC16算法 —> 结果就是 [0, 16383], 然后插入到对应的node上的槽里即可

7、搭建集群

(1)安装运行ruby脚本环境

# 安装ruby 和 rubygems
yum install -y ruby rubygems
# https://rubygems.org/gems/redis/versions/4.2.1
gem install redis

(2)修改配置文件

  • 修改的文件内容如下,然后再复制6份
# 端口
port 7000
# 开放所有ip访问
bind 0.0.0.0
# 开启守护进程
daemonize yes
# rdb 备份名修改
dbfilename dump7000.rdb
# 开启aof备份 修改备份文件名
appendonly yes
appendfilename "appendonly7000.aof"
# 开启集群模式
cluster-enabled yes
# 集群的配置文件
cluster-config-file nodes-6379.conf
# 设置集群结点超时时间
cluster-node-timeout 5000
  • 复制redis-trib.rb到当前redis-server目录中

  • 运行redis-server

redis-server ./redis-cluster/redis-7000.conf
redis-server ./redis-cluster/redis-7001.conf
redis-server ./redis-cluster/redis-7002.conf
redis-server ./redis-cluster/redis-7003.conf
redis-server ./redis-cluster/redis-7004.conf
redis-server ./redis-cluster/redis-7005.conf
redis-server ./redis-cluster/redis-7006.conf
  • 运行ruby脚本创建集群

以前的命令

./redis-trib.rb create --replicas 1 192.169.31.9:7000 192.169.31.9:7001 192.169.31.9:7002 192.169.31.9:7003 192.169.31.9:7004 192.169.31.9:7005 192.169.31.9:7006

现在的命令

  • -a表示密码
redis-cli -a 123456 --cluster create 192.168.31.9:7000 192.168.31.9:7001 192.168.31.9:7002 192.168.31.9:7003 192.168.31.9:7004 192.168.31.9:7005 192.168.31.9:7006 --cluster-replicas 

成功截图

在这里插入图片描述

8、SpringBoot连接集群

依赖

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
spring.redis.cluster.nodes=192.168.31.9:7000,192.168.31.9:7001,192.168.31.9:7002,192.168.31.9:7003,192.168.31.9:7004,192.168.31.9:7005,192.168.31.9:7006
spring.redis.password=123456
9、使用SpingBoot和Redis实现session共享

只要两步就可以完成

(1)引入jar包

<!--spring-redis-session-->
<dependency>
  <groupId>org.springframework.session</groupId>
  <artifactId>spring-session-data-redis</artifactId>
  <version>2.2.3.RELEASE</version>
</dependency>

(2)配置一下,加上@Configuration和@EnableRedisHttpSession,交给sping去管理,开启ReidsHttpSession

@Configuration
@EnableRedisHttpSession
public class MyRedisSessionConfig {
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值