.NET 操作redis原子性

2020-01-11  本文已影响0人  曾小芳zxf

前段时间需要做一个抢票功能,为了解决并发问题,使用到了redis原子性操作,下面介绍一下原子性:

由于redis版本不同,创建原子性的方法存放位置不同,但都是存放在serciceStack.Redis中,全局查找程序集就可以找到。

redis 原子性介绍:

原子性(atomicity):一个事务是一个不可分割的最小工作单位,要么都成功要么都失败。

使用下面这个接口。

          //redis  k值
           var key = "AuthorizeUrl_pull";

            //加入原子性

            long num = RedisCache.IncrementValue(key);

            if (num == 1)

            {

            //设置缓存过期时间

                RedisCache.Hash_SetExpire(key, DateTime.Now.AddSeconds(7));

下面为自己业务,

解释:

存入具有原子性的redis缓存,每次请求缓存的value会加1,设置7秒的过期时间,在这7秒钟之内只能请求一次。避免高并发以及接口操作过长。

发散思维:

如果在抢单过程中,我需要发10个奖品,在抢单期间如果有大量用户抢单,肯定避免不了高并发以及数据崩坏,

此时就可以运用redis 原子性,当然运用消息队列效果会更好,如果你以及部署了消息队列服务器的话

上一篇 下一篇

猜你喜欢

热点阅读