ServiceStack.Redis常用操作 - 事务、并发锁
一、事务
使用IRedisClient执行事务示例:

using (IRedisClient RClient = prcm.GetClient())
{
RClient.Add("key",1);
using (IRedisTransaction IRT = RClient.CreateTransaction())
{
IRT.QueueCommand(r => r.Set("key", 20));
IRT.QueueCommand(r => r.Increment("key",1)); IRT.Commit(); // 提交事务
}
Response.Write(RClient.Get<string>("key"));
}

二、并发锁
使用IRedisClient申请锁示例:

using (IRedisClient RClient = prcm.GetClient())
{
RClient.Add("mykey",1);
// 支持IRedisTypedClient和IRedisClient
using (RClient.AcquireLock("testlock"))
{
Response.Write("申请并发锁<br/>");
var counter = RClient.Get<int>("mykey"); Thread.Sleep(100); RClient.Set("mykey", counter + 1);
Response.Write(RClient.Get<int>("mykey"));
}
}

ServiceStack.Redis常用操作 - 事务、并发锁的更多相关文章
- ServiceStack.Redis常用操作 - 事务、并发锁_转
		
一.事务 使用IRedisClient执行事务示例: using (IRedisClient RClient = prcm.GetClient()) { RClient.Add("key&q ...
 - 【连载】redis库存操作,分布式锁的四种实现方式[三]--基于Redis watch机制实现分布式锁
		
一.redis的事务介绍 1. Redis保证一个事务中的所有命令要么都执行,要么都不执行.如果在发送EXEC命令前客户端断线了,则Redis会清空事务队列,事务中的所有命令都不会执行.而一旦客户端发 ...
 - 【连载】redis库存操作,分布式锁的四种实现方式[二]--基于Redisson实现分布式锁
		
一.redisson介绍 redisson实现了分布式和可扩展的java数据结构,支持的数据结构有:List, Set, Map, Queue, SortedSet, ConcureentMap, L ...
 - 【连载】redis库存操作,分布式锁的四种实现方式[一]--基于zookeeper实现分布式锁
		
一.背景 在电商系统中,库存的概念一定是有的,例如配一些商品的库存,做商品秒杀活动等,而由于库存操作频繁且要求原子性操作,所以绝大多数电商系统都用Redis来实现库存的加减,最近公司项目做架构升级,以 ...
 - 【Redis使用系列】Redis常用操作
		
一.string类型的常用命令 set key value #一个key对应一个value.多次赋值,会覆盖前面. setnx key value #如果key存在则创建key1,并返回1,如果 ...
 - Python  Redis常用操作(持续更新)
		
目录 1.Redis简介 2.Redis部署 3.Redis API应用 4.String操作 1.Redis简介 redis是业界主流的key-value,nosql数据库之一.和Memcached ...
 - 【连载】redis库存操作,分布式锁的四种实现方式[四]--基于Redis lua脚本机制实现分布式锁
		
一.redis lua介绍 Redis 提供了非常丰富的指令集,但是用户依然不满足,希望可以自定义扩充若干指令来完成一些特定领域的问题.Redis 为这样的用户场景提供了 lua 脚本支持,用户可以向 ...
 - 万字长文入门 Redis 命令、事务、锁、订阅、性能测试
		
作者:痴者工良 Redis 基本数据类型 Redis 中,常用的数据类型有以下几种: String:字符串类型,二进制安全字符串: Hash:哈希表: List 列表:链表结构,按照插入顺序排序的字符 ...
 - redis过期策略+事务+分布式锁+单redis服务器锁
		
过期策略 相关知识:redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略.redis 提供 6种数据淘汰策略: voltile-lru:从已设置过期时间的数据集(server.db[i ...
 
随机推荐
- sharepoint中的YesNo字段
			
sharepoint中的YesNo字段实际上是一个Boolean字段,性格有点特别,如果IsShow是一个YesNo字段,使用caml查询的时候值为”1“(Yes)”0“(No),Item[IsSho ...
 - AndroidStudio字体主题样式分享
			
最近慢慢在从eclipse往AndroidStudio习惯,但总觉得AS的默认字体颜色看的不舒服,便花了些时间将字体颜色样式改成了和原来类似的.以下是效果图. 这里是下载地址http://downlo ...
 - 分享一张oracle scan图
 - Oracle数据库学习 视图、序列及存储过程
			
视图(View) 视图也被称作虚表,也就是虚拟的表,是一组数据的逻辑表示. 视图对应一个select语句,结果集被赋予一个名字,也就是视图的名字. 视图本身不包含任何数据,它只是包含映射到基表的一个查 ...
 - while loading persisted sessions  异常解决方法
			
一直用tomcat一段时间都正常无事,最近一次启动tomcat就发生以下异常: 严重: IOException while loading persisted sessions: java.io.EO ...
 - (转)iOS被开发者遗忘在角落的NSException-其实它很强大
			
转载自 http://www.jianshu.com/p/05aad21e319e iOS被开发者遗忘在角落的NSException-其实它很强大 字数597 阅读968 评论4 喜欢28 NSExc ...
 - JavaScript设置右下角悬浮窗
			
很多时候,我们需要设置一个dom节点到浏览器窗口的右下角.我们需要那个元素可以在窗口Scroll滚动或者变换大小resize的时候都可以保持浮动在那个位置.这个时候,我在网上看了看,发现很多框架什么啊 ...
 - jQuery分析(2) - $工厂函数分析
			
前言 从这节进入jQuery的世界,首先从jQuery的入口函数开始了解jQuery()或$是如何运作的,这里我给出了一个最小的例子来分析. 回忆 在进入分析代码前我们回想下jQuery的使用方法有哪 ...
 - ZOJ 2432 Greatest Common Increasing Subsequence(最长公共上升子序列+路径打印)
			
Greatest Common Increasing Subsequence 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problem ...
 - linux vim 基本操作
			
(一定要在英文输入法的状态下才有效)vi:实际上linux 上的 vi 不是真正的 vi,而是 vim;纯的 vi只在某些 unix 系统上还存在纯 的vi里面不支持退格键盘了,当按退格键盘以后,不是 ...