前言:
在经过漫长的技术沉淀,终于又为 .Net 及 .Net服务器托管网 Core 的微服务系列框架贡献当中的一个重要组件。
Taurus.DistributedLock is a distributed lock for .net or .net core.【支持:Redis、MemCache、Database、Local、File 五类锁】
1、开源地址:
https://github.com/cyq1162/Taurus.DistributedLock
# Taurus.DistributedLock 分布式锁,使用 .Net Core 示例:
2、以 Nuget 中引入运行包:Taurus.DistributedLock
3、进行编码:
1、引入名称空间:
using Taurus.Plugin.DistributedLock;
2、配置相关项(示例用代码进行配置,也可以在配置文件中配置):
1、Database 锁配置: DLockConfig.Conn = "server=.;database=mslog;uid=sa;pwd=123456";//由数据库链接决定启用什么链接 DLockConfig.TableName = "taurus_lock"; 2、Redis 锁配置: DLockConfig.RedisServers = "127.0.0.1:637服务器托管网9"; 3、MemCache 锁配置: DLockConfig.MemCacheServers = "192.168.100.111:11211";
3、根据需要获得对应锁类型:
var dsLock = DLock.File;// Get File Lock var dsLock = DLock.Local;// Get Local Lock var dsLock = DLock.Database;// Get DataBase Lock var dsLock = DLock.Redis;// Get Redis Lock var dsLock = DLock.MemCache;// Get MemCache Lock
4、进行锁、并释放锁:
string key = "myLock"; bool isOK = false; try { isOK = dsLock.Lock(key, 30000); if (isOK) { Console.Write(" - OK - " + ); } } finally { if (isOK) { dsLock.UnLock(key); } }
更详细使用见开源地址:/demo 运行示例,运行界面:
总结:
分布式锁,最早在是去年,因为前面两个开源框架:Taurus.DTC分布式事务框架 、Taurus.DTS分布式任务框架中需要用到分布式锁。
考虑到CYQ.DataORM框架内部已经实现了分布式缓存(Redis、Memcached),而分布式锁依赖于分布式缓存, 所以花了些时间,集成在 CYQ.Data框架内部实现了,默认实现时并没有数据库类型。
后来想让Taurus.DistributedLock 分布式锁框架独立,也让 CYQ.Data单纯一些,分布式锁从 CYQ.Data版本移除了 。
同时独立的分布式锁框架,增加了数据库类型的锁,数据库类型锁目前支持(Mssql、Mysql、Oracle、Sybase、Postgres、DB2、FireBird、Sqlite、DaMeng(达梦)、KingBaseES(人大金仓))。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: Canal+Kafka实现MySQL与Redis数据同步(一)
Canal+Kafka实现MySQL与Redis数据同步(一) 前言 在很多业务情况下,我们都会在系统中加入redis缓存做查询优化。 如果数据库数据发生更新,这时候就需要在业务代码中写一段同步更新redis的代码。 这种数据同步的代码跟业务代码糅合在一起会不…