首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

redis(三)redis锁的使用

不做处理的代码 编写最普通的程序,不考虑任何并发的代码 需求 假定现在有10000库存,访问一次接口库存减1 当库存等于0,返回库存不足 需求分析 因为需要模拟接口访问,所以需要一个web项目,我这里使用的是一个可以运行起来的...redis锁的代码 synchronized确实可以解决库存不一致问题,但是,因为线上服务大部分都是多节点部署,两台或者两天以上的服务器,代码加synchronized肯定是不好使的 所以这里推荐使用redis...锁 redis锁的优势 redis锁基于redis实现 数据存储在内存,操作较快 redis是单线程,安全 修改后的代码 使用setIfAbsent来判断key是否存在 使用expire来设置超时时间...锁主要用作分布式的安全方面,可以通过最后的redis锁测试的结果看出,虽然库存没有减到0,但是安全得到了保障,每个数,只被用了一次 我这是第一次使用StringRedisTemplate(之前都是使用Jedis...),没有踩过太大的坑,所以不敢保障这个redis使用一定正确,但是效果达到了 本文使用的redisUtils,点击下面的阅读原文,即可找着

62010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    redis简单使用

    Redis 比其他 key-value 缓存产品有以下三个特点:Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载到内存使用。...Redis流的出现解决了上述提到的所有问题,它是上述3种数据结构的综合体,具备它们各自的所有优点以及特点,是使用Redis实现消息队列应用的最佳选择。...因为毫秒时间和顺序编号都使用64位的非负整数表示,所以整个流ID的总长为128位,而Redis在接受流ID输入以及展示流ID的时候都会使用连字符-分割这两个部分。...redis> XADD s1 * k2 v2"1663308584308-0"如果用户使用了*作为ID参数的值,但是宿主机器的当前时间比流中已有最大ID的毫秒时间要小,那么Redis使用该ID的毫秒时间来作为新...4) 消费消息需要使用特定命令进行显式确认。Redis将该确认解释为:此消息已正确处理,可以从消费者组中移除。

    1.8K20

    Redis BitMap使用

    Redis BitMap ? 概述 ---- 1.BitMap简介 2.BitMap相关指令 3.BitMap使用场景 ?...Redis从2.2.0版本开始增加了setbit、getbit、bitcount等几个bitmap相关命令。...如果Redis key不存在,则自动生成一个新的字符串值。字符串会自动伸展以确保可以将value保存在指定的偏移量上。当字符串值进行伸展时,空白位置以0填充。...因为Redis字符串的大小被限制在512M以内, 如果需要使用比这更大的空间,则必须使用多个key。 通过以下两个指令分别设置offset=0和offset=100的位信息。...第3节 BitMap使用场景 ---- BitMap适用于网站活跃活跃用户统计/用户行为统计等场景。 为了统计今日登录的用户数,使用一个BitMap,每一位标识一个用户ID。

    1.6K10

    Redis进阶-Redis使用建议一二事

    【推荐】 禁用命令 禁止线上使用keys、flushall、flushdb等,通过redis的rename机制禁掉命令,或者使用scan的 方式渐进式处理。...【推荐】合理使用select redis的多数据库较弱,使用数字进行区分,很多客户端支持较差,同时多业务用多数据库实际还是单线程处理,会有干扰。...2. pipeline可以打包不同的命令,原生做不到 3. pipeline需要客户端和服务端同时支持 【建议】Redis事务功能较弱,不建议过多使用,可以用lua替代 客户端使用 【推荐】...避免多个应用使用一个Redis实例 正例:不相干的业务拆分,公共数据做服务化。...【推荐】 使用带有连接池的数据库,可以有效控制连接,同时提高效率,标准使用方式: import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool

    32730

    使用zabbix监控redis内存使用

    本篇提到的监控环境是有条件的,即默认单机只运行一个redis实例,且默认运行的端口是6379(也可以是其他端口,需要通过sed -i ‘s/6379/你修改的端口/g’ xml模板文件 修改模板文件里的端口号...2、客户端key配置 在被监控的主机上,打开/etc/zabbix/zabbix_agentd.conf 配置文件,在最后一行加入: UserParameter=redis_stats[*],redis-cli...# zabbix_get -s 172.20.0.20 -k redis_stats[6379,total_connections_received] 2249669 上面正常从被监控主机上取得了数据,...同样,验证数据使用 monitoring —– lastest data —- 打到刚刚添加的主机,查看是否有数据 。...5、查看监控图 通过monitoring —– graphs 可以查看刚刚添加的监控项的监控图,这里只截下内存使用情况图 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

    54820

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券