zoukankan      html  css  js  c++  java
  • [Open Source] .NET 基于StackExchange.Redis的扩展

    目录

    简介

    • Redis.Extension GitHub(欢迎Fork Star)

    • Redis.Extension nuget(Install-Package Redis.Extension)

    • Redis 开源的分布式NoSQL,c语言开发,存储结构:key-value

    • 持久化(容灾)

      • snapshot(快照)
        • Redis默认持久化方式,每次保存RDB的时候,fork()出1个子进程进行持久化
        • dump.rdb
        • 配置n秒超过m个key 开始快照
        • 性能高,丢失数据比较多
      • Append-only file(aof)
        • 新命令到达则fsync一次,文件足够大的时候,rewrite一次。
        • appendfilename "appendonly.aof" 设置存储文件
        • appendfsync 设置频率
        • auto-aof-rewrite 设置自动重写
        • 性能稍慢,丢失数据非常少
    • 5种数据类型:string,list(链表),hash(哈希),set(集合),zset(排序集合)

    安装

    • Windows

      • 管理多个服务实例
        • redis-server.exe --service-install redis.windows-service --service-name Redis --port 6369
        • sc delete Redis
      • 直接启动
        • redis-server.exe redis.windows.conf
    • Linux

      • 源码包
      • docker
    • Mac

      • brew
      • docker

    主从复制

    • 过程

      • 当设置好slave服务器后,slave会建立和master的连接,然后发送sync命令。
      • 无论是第一次同步建立的连接还是连接断开后的重新连接,master都会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存起来。
      • 后台进程完成写文件后,master就发送文件给slave,slave将文件保存到磁盘上,然后加载到内存恢复数据库快照到slave上。
      • 接着master就会把缓存的命令转发给slave。
      • 而且后续master收到的写命令都会通过开始建立的连接发送给slave。
      • 从master到slave的同步数据的命令和从client发送的命令使用相同的协议格式。
      • 当master和slave的连接断开时slave可以自动重新建立连接。
      • 如果master同时收到多个slave发来的同步连接命令,只会使用启动一个进程来写数据库镜像,然后发送给所有slave。
    • 配置

      • slaveof 127.0.0.1 6379

    备份与恢复

    • appendfilename "appendonly.aof"

    • snapshot "dump.rdb"

    API

    • 具体的API调用可以 可以直接参考ManagerTest。
    • AddOrUpdate 支持指定具体时间点 缓存失效
    • AddOrUpdate 支持指定具体时间点 缓存失效
    • GetOrAdd 支持检测缓存 再读库操作
    • DeleteByPattern 支持根据key模糊删除
    • SearchKeys 支持查询Keys
    • TransExcute 支持Redis事务执行
    • Subscribe 支持快速订阅消息
    • Publish 支持快速发布消息

    命令

    • string: set | get
    • hash: hmset | hgetall
    • list: lpush | lrange
    • set: sadd | smembers
    • zset: zadd | zrange
    • save bgsave
    • subscribe publish
    • keys *
    • info
  • 相关阅读:
    hibernate hql
    数据库锁机制
    Spring 事物管理
    spring自动代理
    spring 其它增强类型
    spring
    mybatis动态sql
    SSH注解整合
    ssh整合
    错题解析
  • 原文地址:https://www.cnblogs.com/neverc/p/7228493.html
Copyright © 2011-2022 走看看