针对缓存对象操作导致网站数据显示异常

网站是根据用户的积分来判断是否可以兑换优惠券,由于优惠券列表信息都是公用的,所以在查询优惠券信息的时候使用了缓存,然后返回一个优惠券的List,由于不想再页面中判断用户积分数量是否满足优惠券兑换来控制兑换按钮的颜色,所以就在优惠券对象中添加了一个是否可兑换的属性,默认都是可兑换的,获取到优惠券列表之后,然后根据session中会员积分个数来设置该属性,由于现在的优惠券列表对象就是缓存中的对象,于是缓存的数据就被修改了,造成任意一个用户访问的时候就会去修改该数据bug,修复方案,把缓存的对象克隆一份然后再去修改。

时间: 2024-11-11 00:56:22

针对缓存对象操作导致网站数据显示异常的相关文章

static引发的RecyclerView上下滚动数据显示异常的bug

之前使用RecyclerView从来没有出现过这种问题.问题大致是这样的,当滑动RecyclerView时,某项item内的数据不断发生改变.如图所示: 从图中可以看到,中间的一项内容随着滚动在不断的发送变换. 找了好久没找到原因,后来去stackoverflow上找了下,找到了类似的问题,但是依然没有解决方法,后来无意翻看以前的代码,想起来写ViewHolder的时候把成员变量声明成static了,当时可能是由于脑抽了顺手写了个static,就因为这个static,导致了数据显示异常,解决方法

因在缓存对象中增加字段,而导致Redis中取出缓存转化成Java对象时出现反序列化失败的问题

背景描述 因为业务需求的需要,我们需要在原来项目中的一个DTO类中新增两个字段(我们项目使用的是dubbo架构,这个DTO在A项目/服务的domain包中,会被其他的项目如B.C.D引用到).但是这个DTO对象已经在Redis缓存中存在了,如果我们直接向类中增加字段而不做任何处理的话,那么查询操作查出来的缓存对象就会报反序列化失败的错误,从而影响正常的业务流程,那么来看一下我的解决方案吧. 升级缓存版本号 我们的正式环境和预发布环境是共用Redis和Mysql.如果修改了DTO且没有加@Json

TTL传输中过期问题导致网站打不开

 TTL传输中过期问题导致网站打不开 简介:这几点很郁闷的一件事就是CSDN博客突然打不开了,看看博客也不行,我想着没道理啊, 在手机上能打开,别人机器上也能打开,别的网站也没问题,偶尔打开一次也是超慢,这是咋回事? 再就是前几天在装完系统之后也碰到过一个类似的问题,就是我IIS配置的本地的网站和 线上的网站出现了混淆的情况,我改了host文件,单当我ping域名时发现确是线上的IP 也是采用本文中介绍的刷新DNS缓存解决的,问题如图: 解决方案: 查了查,可能是产生了环路,或是局域网存在A

用OSCache进行缓存对象

1.OSCache是什么?     OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能.OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的缓存解决方案.2.OSCache的特点    (1) 缓存任何对象:你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存.    (2) 拥有全面的API:OSCache API允许你通过编程的方式来控

网站流量异常?天下数据来支招

流量是一个网站管理人员非常在意的一个指数,流量的高低衡量着我们网站的价值.而我们今天讨论的流量则不同于网站流量.我们今天要讨论的是空间流量.比如,网站中的某张图片是1M,被一个网民流量一次以后,就会消耗1M的流量,如果是被1000个人流量该图片的话,就要消耗1000M的流量,而通常网民不会只流量首页.某张图片,通常还要观看相关的产品.介绍等等,这些加在一起,大概在10M左右,普通的网站,大概每天100个用户访问,而且现在也都不限流量.处理这些数据不管是服务器还是虚拟主机,都是毫无压力. 但是,我

veridata实验举例(3)验证veridata查找出insert操作导致的不同步现象

veridata实验举例(3)验证veridata查找出insert操作导致的不同步现象 续接:<veridata实验举例(2)验证表BONUS与表SALGRADE两节点同步情况>,地址:点击打开链接 环境: Item Source System Target System Platform Red Hat Enterprise Linux Server release 5.4 Red Hat Enterprise Linux Server release 5.4 Hostname gc1 g

顶点缓存对象(VBO)

创建VBO 绘制VBO 更新VBO 实例 GL_ARB_vertex_buffer_object扩展致力于提供顶点数组与显示列表的优势来提升OpenGL效率,同时避免它们实现上的不足.顶点缓存对象(VBO)准许顶点数组数据存放在服务端的高性能显卡内存中,且提供高效数据传输.如果缓存对象用于保存像素数据,就被称为像素缓存对象(PBO). 使用顶点数组可以降低函数调用次数与降低共享顶点的重复使用.然而,顶点数组的不足之处是顶点数组函数处在客户端状态中,且每次引用都须向服务端重新发送数据. 此外,显示

缓存常用操作

using System; using System.Web.Caching; using System.Web; using System.Collections; using System.Text.RegularExpressions; namespace Tools { /// <summary> /// 缓存常用操作 /// Autho :SongBiao /// version :1.4 /// LastEditTime:2015-12-12 /// </summary>

JNI头文件详解(三)对象操作

JNI 中Java对象操作: 对象操作相关函数: (AllocObject,NewObject,NewObjectA,NewObjectV,GetObjectRefType,IsInstanceOf,IsSameObject) 1.对比函数特性. 1.1  AllocObject 函数和NewObject,NewObjectA,NewObjectV,之间的区别, 共同点 不同点:   AllocObject不需要调用如何构造函数产生一个Java对象.而NewObject,NewObjectA,N