zoukankan      html  css  js  c++  java
  • Redis

    Redis 存储类型、事务基本操作、乐观锁、持久化、订阅发布、缓存穿透和雪崩。

    Redis 存储类型

    String、[SET,SETNX,SETEX,STRLEN,SETRANGE,GETRANGE]

    List、[LPUSH,RPUSH,LPOP,RPOP]

    Set、[SADD,SPOP,]

    Hash、[HSET,HGET,HKEYS,HVALS]

    Zset、[ZADD,ZSCORE(判断key是否存在),ZINCRBY,]

    Geospatial、[GEOADD,GEOPOS,GEODIST]

    Hyperloglog、[PFADD,PFCOUNT,PFMERGE]

    Bitmap、[SETBIT,GETBIT,BITPOS,BITOP]

    事务基本操作

    开启事务[multi]

    命令入队

    执行事务[exec]

    放弃事务[discard]

    redis事务不保证原子性,语法错误会失败,运行错误不会失败。

    乐观锁

    [watch]监视器实现乐观锁

    持久化、指定时间里,讲内存中的数据集体写入磁盘,创建快照。fork一个子进程来实现。 默认RDB 一般不修改,缺点就是最后一次肯能丢失。比AOF更加高效

     RDB
      save 900 1 #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。
      save 300 10 #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。
      save 60 10000 #在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照。
     AOF
      appendfsync always #每次有数据修改发生时都会写入AOF文件。
      appendfsync everysec #每秒钟同步一次,该策略为AOF的缺省策略。
      appendfsync no #从不同步。高效但是数据不会被持久化。

    订阅发布

    [psubscribe] 订阅一个或多个给定模式的频道

    [pubsub] subcommand 查看订阅与发布状态

    [publish] channel message 讲信息发送到指定频道

    [punsubscribe] 退订所有给定模式的频道

    [subscribe] 订阅给定的一个或多个频道

    [unsubscribe] 退订给定频道

    [info] replication 查看redis状态

     

    集群搭建、主从复制、哨兵模式、

    1、单机版

     

    2、主从复制

     

    3、哨兵模式

     

    4、

    缓存穿透和雪崩

    1、缓存穿透(读不到数据,一直读)

    布隆过滤器。

    redis中存入空的缓存。

    2、缓存击穿(对某一个key数据 读取量高,缓存过期,空档期直接击穿底层数据库)

    上层对于查询key的时候可以单线程查询。

    热点数据不过期

     

    Redis的分布式锁??

       分布式锁,setnx

      SET key value [EX seconds] [PX milliseconds] [NX|XX]

     

    3、缓存雪崩 双十一:

    停掉一些服务(保证主要服务可用),多增几台redis(异地多活)

    限流降级

    数据预热

     

    Redis 过期策略及内存淘汰机制

    过期策略

     过期策略:-> 定期删除+惰性删除

    内存淘汰机制

    volatile-lru: 从已设置过期时间的数据集( server.db[i].expires ) 中挑选最近最少使用的数据淘汰。

    volatile-ttl: 从已设置过期时间的数据集( server.db[i].expires ) 中挑选将要过期的数据淘汰。

    volatile-random: 从已设置过期时间的数据集( server.db[i].expires ) 中任意选择数据淘汰。

    allkey-lru: 从数据集( server.db[i].dict ) 中挑选最近最少使用的数据淘汰。

    allkey-ramdom: 从数据集( server.db[i].dict ) 中任意选择数据淘汰。

    no-enviction(驱逐): 禁止驱逐数据。

     

  • 相关阅读:
    [翻译] .NET 官宣跨平台 UI 框架 MAUI
    手写一个简易的多周期 MIPS CPU
    介绍一个基于 .NET 的船新 PHP SDK + Runtime: PeachPie
    C# 9 新特性:代码生成器、编译时反射
    .NET 5 中的正则引擎性能改进(翻译)
    你所不知道的 C# 中的细节
    拿 C# 搞函数式编程
    从未来看 C#
    直接使用汇编编写 .NET Standard 库
    用 F# 手写 TypeScript 转 C# 类型绑定生成器
  • 原文地址:https://www.cnblogs.com/kutsu/p/13709538.html
Copyright © 2011-2022 走看看