目录

  • 简介

  • 主从复制

  • 备份与恢复

  • API
    • AddOrUpdate
    • GetOrAdd
    • DeleteByPattern
    • SearchKeys
    • TransExcute
    • Subscribe/Publish
  • Todo
    • Sentinel
    • .NET Core
    • Configuration
    • Log
    • Async

简介

  • 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

API

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

备份与恢复

  • appendfilename "appendonly.aof"

  • snapshot "dump.rdb"

使用

  • string: set | get
  • hash: hmset | hgetall
  • list: lpush | lrange
  • set: sadd | smembers
  • zset: zadd | zrange
  • save bgsave
  • subscribe publish
  • keys *
  • info

[Open Source] .NET 基于StackExchange.Redis的扩展的更多相关文章

  1. 在.Net下使用redis基于StackExchange.Redis

    研究了下redis在.net下的使用,因为以前在java上用redis用的是jedis操作,在.net不是很熟悉,在网站上也看了一部分的.net下redis的使用,大部分都是ServiceStack. ...

  2. .net core 使用redis 基于 StackExchange.Redis

    一.添加引用包 StackExchange.Redis Microsoft.Extensions.Configuration   二.修改配置文件 appsettings.json   { " ...

  3. 扩展 StackExchange.Redis 支持实体

    一.StackExchange.Redis StackExchange.Redis是由Stack Overflow开发的C#语言Redis客户端,使用广泛,本文针对 StackExchange.Red ...

  4. redis的安装、启动、主从配置,以及.Net下StackExchange.Redis的使用

    开门见山,Linux下配个环境真是苦逼死了,这里记录一下,囧 一.环境 服务端:Ubuntu16.04 LTS(虚拟机,redis官方没有window发布版本,而且在Linux下运行更稳定) 客户端: ...

  5. 在.Net下使用redis基于StackExchange.Redis--登录功能

    研究了下redis在.net下的使用,因为以前在java上用redis用的是jedis操作,在.net不是很熟悉,在网站上也看了一部分的.net下redis的使用,大部分都是ServiceStack. ...

  6. Redis集群~StackExchange.redis连接Twemproxy代理服务器

    回到目录 本文是Redis集群系列的一篇文章,主要介绍使用StackExchange.Redis进行Twemproxy(文中简称TW)代理服务的连接过程,事务上,对于TW来说,我们需要理解一下它的物理 ...

  7. [开源精品] .NET Redis Client 又多了一个选择,还在被 StackExchange.Redis Timeout 问题困扰吗?

    前言 .NET 下 RedisClient SDK 选择挺多,国人常用免费的有 StackExchange.Redis/CSRedis/Newlife.Redis,收费的有 ServiceStack. ...

  8. Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager

    Redis缓存服务器是一款key/value数据库,读110000次/s,写81000次/s,因为是内存操作所以速度飞快,常见用法是存用户token.短信验证码等 官网显示Redis本身并没有Wind ...

  9. Redis 详解 (一) StackExchange.Redis Client

    这期我们来看StackExchange.Redis,这是redis 的.net客户端之一.Redis是一个开源的内存数据存储,可以用来做数据库,缓存或者消息代理服务.目前有不少人在使用ServiceS ...

随机推荐

  1. .net—— webservice的新建、发布、使用(最全、最简单)【原创】

    网上有很多关于webservice资料,但大部分都不完整,其中还要很大部分是转载的--.这个悲剧了,自己都没试过能不能用就不负责任的转载. 所以今天对webservice的新建.发布.使用最一个全面. ...

  2. java基础(六章)

    一.for循环的使用场合 l  while循环--先判断,再循环 while(1.条件表达式){      //2.循环操作      //3.更改循环条件表达式 } l  do-while--先循环 ...

  3. Oracle查询数据出来乱码问题?

    为什么Oracle 查询出来的数据会产生乱码?   安装的数据库和客户端编码编码不一致就会产生乱码,要想解决此问题改一下客户端的编码即可 1. select * from table; 如果是这种问题 ...

  4. python——根据电子表格的数据自动查找文件

    最近刚接触python,找点小任务来练练手,希望自己在实践中不断的锻炼自己解决问题的能力. 经理最近又布置了一个很繁琐的任务给我:有一项很重大的项目做完了,但是要过审计(反正就是类似的审批之类的事情) ...

  5. linux iptables规则介绍

    今天又学习了一下iptables,做一点总结来方便以后查阅. Netfilter(网络过滤器)是Linux操作系统核心层内部的一个数据包处理模块,主要负责数据包的拦截和转发,而iptables是Net ...

  6. 开源Inno Setup官网下载、安装、打包教程(官网安装向导中文语言包)

    安装Inno Setup篇 1.搜索Inno Setup 2.下载Inno Setup 3.选择下载最新 innosetup-5.5.9-unicode.exe 版本(innosetup-5.5.9. ...

  7. CSharpGL(42)借助帧缓存实现渲染到纹理(RenderToTexture)

    CSharpGL(42)借助帧缓存实现渲染到纹理(RenderToTexture) 渲染到纹理(Render To Texture)是实现很多OpenGL高级效果的一个基础.本文记录了如何用CShar ...

  8. vue1与vue2的路由 以及vue2项目大概了解

    vue1的路由 1.设置根组件  Vue.extend() 2.设置局部组件  Vue.extend({template:"/home"}) 3.实例化路由   var route ...

  9. Kafka 源代码分析之LogSegment

    这里分析kafka LogSegment源代码 通过一步步分析LogManager,Log源代码之后就会发现,最终的log操作都在LogSegment上实现.LogSegment负责分片的读写恢复刷新 ...

  10. 禁用自动映射的 Exchange 邮箱

    客户最近询问他们无法从用户的Outlook配置文件中删除邮箱.在这种情况下,它们是共享邮箱,并出现在Outlook的左窗格中.但原因和解决方法同样适用于用户邮箱.并且 无论用户邮箱在本地 Exchan ...