美文网首页
.NET 操作redis原子性

.NET 操作redis原子性

作者: 曾小芳zxf | 来源:发表于2020-01-11 17:41 被阅读0次

前段时间需要做一个抢票功能,为了解决并发问题,使用到了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 原子性,当然运用消息队列效果会更好,如果你以及部署了消息队列服务器的话

相关文章

  • .NET 操作redis原子性

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

  • redis操作原子性

    Redis操作原子性的原因 Redis的操作之所以是原子性的,是因为Redis是单线程的。

  • redis原子性操作

    redis原子性操作的实现原理在于redis底层使用单线程操作。 设计者认为cpu不会成为性能的瓶颈,实际上是会的。

  • redis命令

    时不时的加吧 所有的redis命令都是原子操作(可以使用redis的事务达到多个命令成为一个原子性操作) Keys...

  • Java并发编程:深入理解CAS、Atomic原子操作和vola

    转自《深入理解Atomic原子操作和volatile非原子性》https://blog.csdn.net/wbb_...

  • 并发编程之redis分布式锁

    基于redis实现的锁机制,主要是依赖redis自身的原子操作(因为redis是单线程)。 原子操作命令:SET ...

  • 1、redis不能保证你的代码线程安全

    总结:redis的每个操作是原子操作,但是在java代码中组合起来的redis操作不是原子操作,因此需要借用red...

  • Java自学-多线程 原子访问

    多线程 原子访问 步骤 1 : 原子性操作概念 所谓的原子性操作即不可中断的操作,比如赋值操作 原子性操作本身是线...

  • Redis分布式锁

    分布式锁方案 redis锁和Memcached的方式类似,利用Redis的setnx命令。此命令同样是原子性操作,...

  • redis中lua脚本的简单使用

    一、背景 在使用redis的过程中,发现有些时候需要原子性去操作redis命令,而redis的lua脚本正好可以实...

网友评论

      本文标题:.NET 操作redis原子性

      本文链接:https://www.haomeiwen.com/subject/sckbactx.html