redis基础整理

1.什么是redis?

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:
字符串类型 (String)
散列类型 (Hash) ----类似jdk1.8之前的HashMap(数组+链表)
列表类型 (List)
集合类型 (Set)
有序集合类型 (Zset)

2.redis的应用场景

String应用场景

  • 缓存
    Mysql作为存储层,Redis作为缓存层,绝大部分数据从Redis获取,降低数据库压力
  • 计数、限速
    比如防止恶意刷短信验证码,某段时间内可以操作的次数等等
  • 共享session
    分布式服务中用户session信息(比如登录信息)保存在服务器中,负载均衡用户的请求会被均衡到各个服务器造成用户需要重新登陆,可以将用户的登录信息存到Redis中进行统一管理

List应用场景

  • 消息队列
  • 缓存列表 ---- 有序可重复
  • 实现其他数据结构

Hash应用场景

  • 缓存对象
    (key -(key - value))

Set应用场景

  • 缓存集合 ---- 无序不可重复(去重数据)

Zset应用场景

  • 缓存集合 ----有序不可重复
    常用经典场景排行榜

除此之外,Redis还可以实现分布式锁,在分布式场景下,无法使用单机环境的锁对多个节点的进程进行同步,可以使用Redis自带的SETNX命令实现分布式锁,除此之外还可以使用官方提供的RedLock分布式锁实现。

3.Redis的优缺点

优点

  • 对数据高并发读写(基于内存)
    对海量数据的高效率存储和访问(基于内存)
    对数据的可扩展性和高可用性
    垂直扩展:提升硬件
    水平扩展:集群
  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis支持数据的备份,即master-slave模式的数据备份。

缺点

  • redis(ACID处理非常简单)无法做到太复杂的关系数据库模型

4.Redis的持久化机制

redis是一个内存数据库,当Redis服务器重启,或者电脑重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中。

  • RDB持久化(默认方式)
    在某个时间节点将Redis的数据保存到一个RDB文件中,该RDB文件是一个二进制文件,可以还原成Redis数据。
    Redis提供了两个命令来创建RDB文件SAVE和BGSAVE(推荐,不阻塞Redis服务器的情况下执行),如果没有启用AOF持久化,Redis会自动将RDB文件还原数据
  • AOF持久化
    将Redis的所有写命令保存到AOF日志文件中,读取AOF文件中的写命令就可以还原服务关闭前的数据了

AOF安全性要比RDB持久化的安全性高(丢失数据)
优先使用AOF,需要开启AOF持久化,开启后默认使用AOF

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值