C sharp Redis简单应用

本次封装Redis应用,用的是免费的ServiceStack,通过NuGet查找应用,该Demo需要特别应用的还有Newtonsoft.Json、Unity,均是最新版本便可。

Demo通过Redis数据库提供者(RedisCacheDatabaseProvider),Redis配置类(RedisCacheOptions),Redis基本功能类(RedisCacheBase),这里的RedisCacheOptions归属配置,我这里将它写成静态类。

C sharp Redis简单应用

RedisCacheOptions

该类是Redis数据库配置,像连接数据库字符串,特定字符前缀,因为Redis可以做到分布式,所以不同的Redis端用不同的前缀名,还有要连接的数据库编号,默认0-16

连接数据库字符串

C sharp Redis简单应用

特定前缀名

C sharp Redis简单应用

连接数据库编号

C sharp Redis简单应用

IRedisCacheDatabaseProvider

因为这里简单用到IOC,所以新增IRedisCacheDatabaseProvider接口,里面提供GetInstance()与GetDatabase()两个方法

C sharp Redis简单应用

RedisCacheDatabaseProvider

此类对外开放GetInstance和GetDatabase两个方法,其中GetInstance返回的实例做到了单例,返回ConnectionMultiplexer类型数据(连接数据库实例);GetDatabase返回连接的数据库,基于此开始做一些具体操作。

在构造函数中延迟创建ConnectionMultiplexer类,RedisCacheOptions.ConnectionString取得连接数据库字符串

C sharp Redis简单应用

单例模式获取ConnectionMultiplexer

C sharp Redis简单应用

获取ConnectionMultiplexer类

C sharp Redis简单应用

根据配置获取数据库

C sharp Redis简单应用

RedisCacheBase

RedisCacheBase主要作为具体操作Redisd的基类,该类继承IDisposable接口,用于using自动销毁连接,在构造函数里面准备好数据库连接实例以及通过该实例连接的数据库

C sharp Redis简单应用

Redis支持一些简单的事务,下面的方法可以执行一组命令

C sharp Redis简单应用

释放数据库连接

C sharp Redis简单应用

以上便是基本的Redis操作的公共部分,以下举一个存放Key-value格式的数据,用RedisCacheStringService实现

RedisCacheStringService

该类继承RedisCacheBase基类,构造函数传入IRedisCacheDatabaseProvider类型数据,以简单的存入key-value,通过key获取value值,让key自增为例

存入key-value值

C sharp Redis简单应用

通过key获取value值

C sharp Redis简单应用

让key对应的值自增

C sharp Redis简单应用

实现Redis操作

C sharp Redis简单应用

通过Unity容器,构造出我们想要的RedisCacheDatabaseProvider

以上便是demo的大概过程,这里有专门的redis数据库配置类,专门提供redis数据实例类,还有redis功能操作的基类,分工明确,这个demo其实还可以再改进一些,比如,在构造RedisCacheStringService类时,不必明式依赖RedisCacheDatabaseProvider,在RedisCacheStringService类里面明确依赖,不必反映到此类的外面。


分享到:


相關文章: