后端学习 | 青训营笔记

57 阅读2分钟

这是我参与「第五届青训营 」伴学笔记活动十七天

redis是什么呢

存储:单表->分库分表。

提高读取速度:数据分冷热,热数据放到内存中。

Web->server->redis->mysql(可以把redis理解成内存,mysql是硬盘)

基本工作原理

AOF文件:写命令追加到AOF文件,增量数据文件。 RDB:全量数据文件。 单线程处理所有操作命令。

应用案例

  • 连续签到
    • 掘金每日连续签到
      • 天数+1
      • 断签签到天数将归零
      • string 数据结构
        • 存储 字符串、数字、二进制数据
        • 通常和expire配合使用
        • 场景:存储技术、Session
        • [len | alloc | flags | buf ] 指针向右获取value [buf],向左获取元信息[l\a\f]
  • 消息通知
    • list 数据结构
      • QuickList由一个双向链表和listpack实现
  • 计数
    • hash数据结构
      • 文章的点赞数不能用count次数,否则次数很多会崩溃
      • 把一些信息,点赞数量、评论数量、粉丝数量用一张表以hash的形式存到redis中
  • 排行榜
  • 限流
  • 分布式锁

菜鸟教程Redis

  • What
    • kv存储系统,是跨平台的非关系型数据库
  • 基本数据结构
    • string
      • 二进制安全的,可以包含任何数据,比如jpg图片或者序列化的对象
      • SET设置kv记录 GET获取kv记录
    • hash
      • 适合存储对象
      • DEL删除记录 HMSET哈希映射 HGET读取哈希值
    • list
      • 字符串列表,按照插入顺序排序,可以添加元素到列表的头部或者尾部
      • lpush 插入列表
      • lrange 读取列表
    • set
      • 是string类型的无序集合
      • 通过哈希表实现
      • sadd 向set中加入 smembers 获取set内容
    • sorted Set(zset)
      • 有顺序的set
  • 特点
    • 支持数据持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
    • 丰富的数据结构
    • 支持数据的备份
  • 命令
    • redis-cli //连接本地redis服务
    • PING 验证服务是否启动