Redis相关介绍

1099 篇文章 1 订阅
723 篇文章 8 订阅
本文介绍了Redis作为缓存系统的作用,如提升响应速度和减轻数据库压力。详细讲解了Redis的执行流程,包括数据同步策略,以及五种数据类型:String、Hash、List、Set和SortedSet。此外,还探讨了Redis的持久化策略(RDB和AOF)、启动方式、客户端连接以及集群和主从备份的概念,强调了AOF在数据安全性上的优势和Redis集群的槽分配及投票机制。
摘要由CSDN通过智能技术生成

1、为什么用redis

(1) 提升数据的响应速度

(2) 减轻关系型数据库的压力

Redis的执行流程

当用户要来操作数据时直接连接数据库进行查询然后展示,相同的数据也需要再进行数据库的查询,对于大数据量的并发访问,会给数据造成距大的压力。

为了减轻数据库的压力,使用了这种非关系型数据库(nosql数据库)redis

当用户第一次访问时,首先访问redis,redis中如果没有数据再去查询数据库,当查询完数据库后,先将数据存放到redis中,然后再返回给用户。

当用户第二次访问的时候还是去访问redis,此时redis中有数据,这时就不需要再次去查询数据库了。

第一次查询,此时redis中有了数据,如果对DB中的数据产生了更新

第二次查询的时候以为redis中已经有了数据,那么就会直接返回,但是问题发生了,db与redis中的数据不同步

此时需要清除redis中的数据

当数据库发生数据改变的时候清空redis

这就是缓存同步:解决nosql数据库与关系型数据库不同步的问题

Redis有五种数据类型

String key value 有一种特殊的写法可以实现数据的分类使用冒号分隔

Clothes:裤子 100

Clothes:风衣 100

Hash key field value key后面跟了个map map中是field value 完成数据归类的操作 存值hset key field value 取值hget key field

List 有序 数据可重复

右压栈–以中心点的位置向右添加 rpush lrange key 0 -1取所有

左压栈–以中心点的位置向左添加 lpush lrange key 0 -1取所有

Set 无序不可重复

存值 sadd key value

取值 smembers key

SortedSet有序不可重复(可以做排行榜信息)

额外的一些对key操作的命令

Expire 设置过期时间,以秒为单位

Ttl 查看某一个key的状态 状态值为-1为持久化状态 -2为key不存在

Persist将某一个key转换为持久化状态

仅适用于linux

Redis的前台启动 redis-server

Redis的后台启动 修改redis.conf中的属性daemonize 改为yes输入redis-server redis.conf完成后台启动

一个单机的redis默认会存在16个数据库 也可以在redis.conf中修改

./redis-cli --raw 客户端连接可以显示中文

在进行连接的时候默认连接的是0号数据库,在同一个数据库中key是不可以重复的,重复的话就会发生值覆盖,在不同的数据库中key是可以重复的,使用select 1命令进行数据库的切换

Redis的持久化策略是对redis内部数据整体的持久化(产生缓存文件,记录信息,缓存文件存放到磁盘中)

1、RDB默认开启的持久化,快照的形式进行记录,dump.rdb。默认存在三种触发条件save 900 1在900秒内如果有1个key发生改变就会触发RDB进行数据存放 save 300 10 在300秒内10个可以发生改变会触发RDB,save 60 10000 60秒内至少有10000个可以发生改变会触发RDB

2、AOF需要手动开启,在redis.ocnf文件中的appendonly属性做修改,当开启后会每秒进行磁盘的写操作,记录的不是单独的数据,会记录所有对redis 的添加、修改、删除的命令。Appendonly属性改为yes 会生成appendonly.aof文件。默认开启每秒记录 appendfsync everysec模式

两种持久化策略是可以同时开启的,但是AOF的优先级高于RDB

Aof的数据安全性高于RDB,但是运行速度低于RDB,建议不开启AOF

Redis集群

在redis3.0版本以后可以直接使用,redis集群中的服务器节点之间是相互联通的,当用户访问集群的节点时,无需关注连接的是哪一个节点,只需要连接集群中任意的节点就可以获取到整个集群的数据

Redis集群数据的存放:0-16383的槽值,当设置值时,根据key计算该key的值,这个值肯定是在0-16383的范围内,根据计算得到的值确定该key的数据存放到哪一个节点中。Key的值可能是相同的。

Redis集群默认有一个投票机制,当集群超过半数的节点认为某一节点已经挂了,那么不管该节点是否挂掉投票结束后就真的挂了,所以一般都是基数个服务器为了实现投票机制。

主从备份:给集群中每一个节点额外搭建一个备份机,为了完成整个集群的高可用,主节点叫master,从节点叫slave。Master对外提供服务,slave实时的做两件事,第一就是同步主节点的数据,第二就是向主节点发送心跳包保证主节点的存活。当主节点无回应时slave变为主节点向外提供服务。

基于(心跳检测机制)keepalived搭建完主从备份后,在用户进行连接时,会在用户和服务之间搭建一个虚拟IP,用户直接连接虚拟IP(VIP),VIP连接master实现用户的间接连接,当master发生问题时,VIP会转接到slave上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值