当前位置: 首页 > news >正文

Redis-详解(基础)

在这里插入图片描述

文章目录

    • 什么是Redis?
    • 用Redis的特点?
    • 用Redis可以实现哪些功能?
    • Redis的常用数据类型有哪些?
    • Redis的常用框架有哪些?
    • 本篇小结

更多相关内容可查看

什么是Redis?

Redis(Remote DictionaryServer)是一个开源的基于内存的数据存储系统,它既可以作为数据库使用,也可以用作缓存、消息代理和排行榜等用途。Redis以其高性能、支持丰富的数据结构和灵活的应用场景而闻名。

  • 数据库 or 缓存(常用)

用Redis的特点?

  • 基于内存的存储:Redis将数据存储在内存中,因此访问速度非常快。它也支持数据持久化到磁盘,以防止数据丢失。
  • 持久化:Redis支持两种持久化方式,分别是快照(snapshot)和日志(append-only file),可以将内存中的数据持久化到磁盘,以便在重启后恢复数据。
  • 复制和高可用性:Redis支持主从复制(master-slave replication),可以将数据复制到多个节点以提高可用性和容错能力。此外,Redis还支持哨兵(Sentinel)和集群(Cluster)模式,用于实现自动故障转移和高可用性。
  • 事务:Redis支持事务(transaction)操作,可以将多个命令打包成一个原子操作执行,保证了操作的一致性。
  • 发布/订阅:Redis支持发布与订阅(pub/sub)模式,可以用于实现消息队列、实时通信等场景。
  • Lua脚本:Redis支持通过Lua脚本执行自定义命令和操作,可以在服务器端执行复杂的逻辑和计算。

用Redis可以实现哪些功能?

注:包含但不限于以下功能(以下为小编自己实现过的内容)

  • 使用Redis做热点数据缓存/接口数据缓存
  • 使用Redis存储一些业务数据 , 例如 : 验证码 , 用户信息 , 用户行为数据 , 数据计算结果 , 排行榜数据等
  • 根使用Redis实现分布式锁 , 解决并发环境下的资源竞争问题
  • 码表,字典
  • 表数据修改后会进行缓存通知来实现缓存表;
  • 可以将常用的库存信息缓存到Redis中,以减少数据库的访问频率,提高系统的响应速度

Redis的常用数据类型有哪些?

  1. string:最基本的数据类型,二进制安全的字符串,最大512M
  2. list:按照添加顺序保持顺序的字符串列表
  3. set:无序的字符串集合,不存在重复的元素
  4. sorted set:已排序的字符串集合
  5. hash:key-value对的一种集合
  6. bitmap(位图):更细化的一种操作,以bit为单位
  7. hyperlog:基于概率的数据结构
  8. Geo(Geospatial地理空间索引) : 地理位置类型

注:常用的就是string ,list , set , zset 和hash

Redis的常用框架有哪些?

  1. Jedis: Java,它支持连接池、分布式、哈希、列表等 Redis 数据结构的操作。
  2. Lettuce: Java ,Lettuce 支持基于响应式编程模型。
  3. StackExchange.Redis: C# ,提供了异步操作、连接复用、分区等功能
  4. redis-py:redis-py,支持连接池、发布订阅、事务等功能。
  5. ioredis: Node.js,支持异步操作、连接池、管道等特性。
  6. lettuce-core:l Kotlin/Java 客户端库,支持响应式流 API。
  7. Redisson:Java ,提供了分布式、面向对象的 API,封装了分布式锁、分布式集合等功能
  8. Spring Data Redis:Spring Framework 提供的 Redis 抽象框架支持声明式事务、RedisTemplate、注解驱动
  9. Django-Redis:Django 框架的 Redis 客户端库,提供了对 Redis 数据库的简单、高效的操作接口,可用于缓存、会话存储等场景。

注:了解即可,不建议死记硬背

本篇小结

本篇针对不同人群,对Redis有一个基础了解,整体概念即可,后续会详细说明Redis的相关问题
Redis数据持久化策略
Redis数据过期策略
Redis数据淘汰策略
Redis集群方案
Redis主从同步
Redis分片集群如何存储及读取数据
Redis跟Mysql如何保证数据一致性
Redis的缓存穿透、缓存击穿、缓存雪崩及解决方案
Redis分布式锁实现方式

http://www.lryc.cn/news/348255.html

相关文章:

  • 记录minio的bug(Object name contains unsupported characters.)
  • 【嵌入式开发 Linux 常用命令系列 7.6 -- sed 替换指定字符串】
  • C++语言的字符数组
  • 24届电信红队实习生面经
  • linux下使用jexus部署aspnet站点
  • 代码随想录训练营Day 27|理论基础、力扣 77. 组合
  • Spring框架深度解析:打造你的Java应用梦工厂
  • Python 正则表达式(一)
  • Cocos Creator 3.8.x报错:5302
  • 网页如何集成各社区征文活动
  • 【知识碎片】2024_05_13
  • Day53代码随想录动态规划part13:300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
  • 自己动手为wordpress注册一个Carousel轮播区块
  • 基于Springboot的实习生管理系统(有报告)。Javaee项目,springboot项目。
  • 良心实用的电脑桌面便利贴,好用的便利贴便签小工具
  • Eayswoole 报错 crontab info is abnormal
  • 移动 App 入侵与逆向破解技术-iOS 篇
  • 2024服贸会,参展企业媒体宣传报道攻略
  • CI/CD笔记.Gitlab系列.新用户管理
  • 前端 JS 经典:JS 基础类型和 typeof
  • Java入门基础学习笔记11——关键字和标识符
  • 设计模式-解释器模式(Interpreter)
  • 机器视觉任务中语义分割方法的进化历史
  • Java并发编程: Synchronized锁升级
  • Atcoder C - Routing
  • 升级! 测试萌新Python学习之连通数据库Pymsql增删改及封装(四)
  • 【大数据】containered学习笔记
  • 「TypeScript」TypeScript入门练手题
  • k8s 使用Docker和Containerd对比分析
  • MySQL 通过 systemd 启动时 hang 住了……