• Redis基础-概念和基础


    什么是Redis

    Redis是一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server(远程数据服务),使用C语言编写,Redis是一个key-value存储系统(键值存储系统),支持丰富的数据类型。

    Redis是一种支持key-value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。

    Redis的特点

    • 读写性能优异

    Redis读数据的速度是110000次/s,写数据的速度是81000次/s (测试条件见下文)

    • 数据类型丰富

    Redis支持二进制的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

    • 原子性

    Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

    • 丰富的特性

    Redis支持 publish/subscribe, 通知, key 过期等特性。

    • 持久化

    Redis支持RDB, AOF等持久化方式

    • 发布订阅

    Redis支持发布/订阅模式

    • 高可用

    Redis 支持 Cluster模式、哨兵模式、主从复制模式

    读取性能测试场景

    官方的bench-mark根据如下条件获得的性能测试(读的速度是110000次/s,写的速度是81000次/s

    • 测试完成了50个并发执行100000个请求。
    • 设置和获取的值是一个256字节字符串。
    • Linux box是运行Linux 2.6,这是X3320 Xeon 2.5 ghz。
    • 文本执行使用loopback接口(127.0.0.1)

    Redis的使用场景

    • 热点数据的缓存

    数据缓存是最常用的场景,因为Redis的性能优异。作为缓存使用,一般有两种缓存方式:

    1、读取数据的时候先读Redis,没有数据则从数据库获取,再将数据写入Redis。该方案实施起来简单,但是要注意两个问题:

    避免缓存击穿(数据库就没有需要的数据,导致每次都访问数据库)

    数据的实时性相对会差一点

    2、写数据到数据库的时候,同步写到Redis。方案实时性强但是不便于统一处理。

    • 限时业务的应用

    redis中使用expire命令设置一个key的过期时间,到期后redis会删除它。利用这一特性可以运用在限时的优惠活动信息、手机验证码等业务场景

    • 计数器相关问题

    Redis由于incrby的原子性的特征,常用于一些计数器的业务场景

    • 分布式锁

    Redisz实现分布式锁也是常见的场景,简单的用法是使用setnx命令("set if not exists"就是如果不存在则成功设置缓存同时返回1,否则返回0),结合过期时间的使用实现分布式锁。这个过程中加锁解锁涉及到原子性的问题一般还会配合lua脚本实现。复杂的实现有Redission本身就实现了分布式锁

    • 延时操作

    一些场景需要再延时多久之后再进行一些业务操作。使用Redis的key过期时间,搭配订阅Pub/Sub频道监听key实现

    • 排行榜、在线统计相关问题

    借助Redis的SortedSet进行热点数据的排序。

    在线访问统计借助BitMap的数据结构进行实现

    • 点赞、好友关系的存储等问题

    Redis 利用集合的一些命令,比如求交集、并集、差集等。

    在微博应用中,每个用户关注的人存在一个集合中,就很容易实现求两个人的共同好友功能

    • 简单队列

    由于Redis有list push和list pop这样的命令,所以能够很方便的执行队列操作

  • 相关阅读:
    【系列教程】ChatGPT+ROS:打造智能无人机自主飞行的下一代解决方案✈️【一】将chatgpt集成到ROS中
    分享几个方便好用的网盘搜索引擎
    STM32 定时器定时中断
    【原创】为什么Linux不是实时操作系统
    www.7seasnft.com、数字藏品、总结
    二十三、生成帮助文档
    [自制操作系统] 第18回 实现用户进程(上)
    erp5开源低代码平台设计要点
    树莓派4B串口通信配置方式
    devpi
  • 原文地址:https://blog.csdn.net/weixin_40663800/article/details/133318836