准备
下载 windows系统的Redis
我采用的是tporadowski的版本
安装
安装包直接完成安装即可。
完成安装后,在windows服务中,会生成一个redis的服务,确保服务正常运行
在安装路径中输入"cmd"打开命令控制台(默认安装路径为C:\Program Files\Redis)。
输入命令 redis-cli,并测试是否可以成功使用。
配置
如果需要在本地客户端调试,在安装路径中用记事本打开 redis.windows-service.conf 文件,将bind 127.0.0.1注释或删除。
客户端调用,可以关闭安全模式或者启用密码,为了安全起见,我这里设置了一个密码,找到requirepass,设置自己的密码即可
设置完成后,需要重启一下redis的服务,修改的配置才会生效
用VS的控制台做个简单的示例,新建个控制程序
引用CSRedisCore包
这里简单写了个原子减的示例
public static void TestDecr(string key, string lockKey)
{
using (CSRedisClient clientCluster = new CSRedisClient("192.168.1.117:6379,password=123456"))
{
//先赋值100
clientCluster.Set(key, 100);
List<Task> tl = new List<Task>();
//多线程批量请求
for (int i = 0; i < 200; i++)
{
var t = Task.Run(() =>
{
//加个分布式锁,避免在逻辑层判断时导致数量多减
using (clientCluster.Lock(lockKey, 5))
{
int getNum = Convert.ToInt32(clientCluster.Get(key));
if (getNum > 0)
{
//decr原子减
clientCluster.IncrBy(key, -1);
}
}
});
tl.Add(t);
}
Task.WaitAll(tl.ToArray());
}
}
执行代码测试
static void Main(string[] args)
{
var productId = "productid";
var productNo = "productno";
TestDecr(productId, productNo);
}
可以结合ES和MQ来简单做一个抢单的功能