Redis

在这里插入图片描述

Redis与Memcache

Redis和Memcache是目前非常流行的两种NoSql数据库,都可以用于服务端缓存。两者有怎样的差异呢?

  • 从实现来看:
    • redis:单线程
    • Memcache:多线程
  • 从存储方式来看:
    • redis:支持数据持久化和主从备份,数据更安全
    • Memcache:数据存于内存,没有持久化功能
  • 从功能来看:
    • redis:除了基本的k-v 结构外,支持多种其它复杂结构、事务等高级功能
    • Memcache:只支持基本k-v 结构
  • 从可用性看:
    • redis:支持主从备份、数据分片、哨兵监控
    • memcache:没有分片功能,需要从客户端支持

可以看出,Redis相比Memcache功能更加强大,支持的数据结构也比较丰富,已经不仅仅是一个缓存服务。而Memcache的功能相对单一。

redis指令

通过help命令可以让我们查看到Redis的指令帮助信息:

在help后面跟上空格,然后按tab键,会看到Redis对命令分组的组名:

主要包含:

  • @generic:通用指令
  • @string:字符串类型指令
  • @list:队列结构指令
  • @set:set结构指令
  • @sorted_set:可排序的set结构指令
  • @hash:hash结构指令

其中除了@generic以外的,对应了Redis中常用的5种数据类型:

  • String:等同于java中的,Map<String,String>
  • list:等同于java中的Map<String,List>
  • set:等同于java中的Map<String,Set>
  • sort_set:可排序的set
  • hash:等同于java中的:Map<String,Map<String,String>>

可见,Redis中存储数据结构都是类似java的map类型。Redis不同数据类型,只是’map’的值的类型不同。

通用命令

  • keys * 查询所有的键
  • EXISTS key 判断key是否存在 存在为1 不存在为0
  • DEL key [key … ] 删除key,可以删除多个. 返回删除的个数
  • EXPIRE key seconds 设置key的过期时间,超过时间后,将会自动删除该key。
  • TTL key 查看一个key过期时间 -1永不过期 -2已经过期或不存在
  • persist key 移除给定key的生存时间,将这个 key 从带生存时间 key 转换成一个不带生存时间、永不过期的 key 。

持久化

Redis 有两种持久化方案 RDB 和 AOF

RDB

RDB 是默认的持久化方案,当满足一定条件时,会自动将内存中的数据持久化硬盘上
条件在redis.conf文件中配置,格式如下:
save (time) (count)
当满足在time(单位是秒)时间内,至少进行了count次修改后,触发条件,进行RDB快照。

默认的配置如下:
在这里插入图片描述
RDB的流程是这样的:

  • Redis使用fork函数来复制一份当前进程(父进程)的副本(子进程)
  • 父进程继续接收并处理请求,子进程开始把内存中的数据写入硬盘中的临时文件
  • 子进程写完后,会使用临时文件代替旧的RDB文件
AOF

默认是关闭的,需要修改配置来开启

appendonly yes # 把默认的no改成yes

AOF持久化的策略是,把每一条服务端接收到的写命令都记录下来,每隔一定时间后,写入硬盘的AOF文件中,当服务器重启后,重新执行这些命令,即可恢复数据。

AOF文件写入的频率是可以配置的:
在这里插入图片描述
AOF文件重写:
当记录文件过多时,必然会出现对同一个key的多次操作,此时只需要记录最后一条即可,前面的记录都毫无意义了. 因此满足一定条件时,Redis会对AOF文件进行重写,移除对同一个key的多次操作命令,保留最后一条命令.

默认触发条件:
在这里插入图片描述

主从&哨兵&缓存穿透和击穿

以后完善

SpringDataRedis

之前我们使用Redis都是采用的Jedis客户端,既然我们使用了SpringBoot,就要使用spring对redis封装的模板组件.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NoBugsBoy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值