将 json数据 按照字符串的格式存到了 redis中,当我数据库做了增 删、改 ,该如何保 数据一致性呢

我在查询时 将 json数据(key为:user:01) 序列化并按照 字符串的格式存到了 redis中,当我做了 增、删、改之后,如何保证 键 user:01 数据的一致性呢? 还是说 我要重新覆盖该值?各位有什么好的解决方案吗

伪代码:

业务代码:
 List<Map> cList = rwDao.getAllRwHist3(paramsMap);
  jedis.setList("user:01",cList);

    底层源码:
     @Override
    public void setList(String key, List<?> list) {
        Jedis jedis = new Jedis("127.0.0.1",6379);
        try{
            if(list != null && !list.isEmpty()){
                jedis.set(key.getBytes(),SerializeUtil.serializeList(list));
            }else{
                jedis.set(key.getBytes(), "".getBytes());
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    @Override
    public List<?> getList(String key) {
        Jedis jedis = new Jedis("127.0.0.1",6379);
        if(jedis==null || !jedis.exists(key.getBytes())){
            return null;
        }
        byte[] data = jedis.get(key.getBytes());
        return SerializeUtil.unSerializeList(data);
    }

3个回答

1、要求性能:如果改动很少,只改了一个字段,可以考虑从reids拿出来后在指定的对象中进行修改,然后redis重新set这个新的值;同理增加就时list.add、删除就是list.remove。但是要注意index的变化哟
2、不要求性能:直接查询后redis覆盖

拿修改后的值重新覆盖一下redis里的值就好了,这不是什么耗时操作

mufeng633
沐风Cc 你的意思是 重新查询数据库将获取的数据,再重新覆盖吗? 如果是这样的话 性能会不会下降呢?还有什么好的解决方案吗
10 个月之前 回复

你在保存和读取的时候都做了序列化反序列化操作了、增删改能感知的情况下直接覆盖,没有疑问。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
数据库——ORACLE数据库的增、删、改
一、数据的增加 基本语法一: INSERT INTO 数据表名(字段1,字段2,字段3…)VALUES(值1,值2,值3…); 例如:向myemp数据表中增加一条数据。 INSERT INTO myemp(empno,ename,sal...)VALUES(1008,'张三',1600); 基本语法二: INSERT INTO 数据表名VALUES(值1,值2,值3…); ...
数据库增、删、改操作
ThinkPHP V5.0是一个为API开发而设计的高性能框架——是一个和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化。 ThinkPHP5是一个全新的里程碑版本,包括路由、日志、异常、模型、数据库、模板引擎和验证等模块都已经重构,不适合原有3.2项目的升级。
数据库增 删 改 查
运用c# 及数据库编写的登陆界面及源代码统一摸版 可以轻松的完成课程设计报告的同意课题
数据库的增、删、改、查
数据库的增、删、改、查适合初学者学习
练手的增,删,改
package CRUD_cn; import java.sql.Connection; import java.sql.PreparedStatement; import org.junit.Test; public class API { @Test public void test() throws Exception{ // String sql="I
JDBC 增、删、改
CRUD是最常见的数据库操作,即增删改查C增加(Create)R读取查询(Retrieve)U更新(Update)D删除(Delete) 在JDBC中增加,删除,修改的操作都很类似,只是传递不同的SQL语句就行了。 查询因为要返回数据,所以和上面的不一样,将在查询章节讲解。 1 增 package jdbc; import java.sql.Connecti...
增、删、改、查
public int doAdd(Reply reply) { String sql = "insert into reply values(null,?,?,?,?,?,?)"; return this.getJdbc().executeUpdate( sql, new String[] { reply.getTitle(), reply.getContent(), reply.get
datagrid的增、删、改
谁有:datagrid的增、删、改完整代码rn我在网上搜的代码,运行后鼠标都落不到datagrid上边,何况新增一行呢?rn请大哥们帮忙,急急急急急急急急急急急急急急急急急急急急急急急rn分分少的话可以加
android 增,改,删
Model实体类:   public class Student { private int sid; private String name; private int age; public Student(){ super(); } public Student(int sid,String name,short age){ super(); ...
增,删,改,综合
$scope.del=function(obj){ //删除 $scope.tt.splice(obj,1); } $scope.Xuan=function(){ //全选 for(var i=0;i $scope.tt[i].st=$scope.xuan; } } $scope.update=function
access数据库增。删。改
过去学习的一些资料,分享给大家。
T-SQL 增、删、改
T-SQL 增、删、改,语法,及注意事项等等。。。
增,删,改,编辑
增,删,改,编辑,点击上传资源即表示您确认该资源不违反资源分享的使用条款,并且您拥有该资源的所有版权或者上传资源的授权 • 您上传的资源如果因版权、使用、内容完整度 等原因被举报并通过官方审核,将扣除通过该资源获得的全部积分
.net 增,删,改 
好呀 gfdgsdfgsfdgsdfg4tfsgvaer yjysbfveshhgfgdfsd
增,删,改,查
var app = angular.module("yy", []); app.controller("democ1", function($scope){ $scope.stus = [{ gname: 'oppo', name: '关羽', tel: 110, jg:2000, cs:'合肥', time:'2018.1.10.19.55', }, { gname:
数据的增、删、改
本教程旨在带领大家进入搜索引擎领域,从无到有,深入浅出的讲解了什么是搜索引擎,搜索引擎的作用以及ElasticSearch在实际工作中的作用等。
增、删、改
--三、增、删、改 --1.增: --insert into 表名[(字段列表)] values(值列表); insert into dept values(60,'XIAOSHOU','CHINA'); select * from dept; create table jobName ( jid number primary key, jname varchar2(20) not nu
JDBC增、删、改
增 package p1; import java.sql.*; import java.util.*; class Person{ @Override public String toString() { return &quot;Person [id=&quot; + id + &quot;, name=&quot; + name + &quot;]&quot;; } int id; String name; } public c...
mysql数据库的增、删、改、查(一)---增、删、改
(本节说的增、删、改,查在下篇博客中)
NSString与NSMutableString字符串操作:增、删、改字符串
NSString是定义固定大小的字符串,NSMutableString可变,可对字符串做增、删、改、插入等操作。 源代码strings.m ----------------------------------- #import &amp;lt;Foundation/Foundation.h&amp;gt; int main (int argc, const char * argv[]) {    N...
String 字符串的增、删、改、查
String 增、删、改、查 灵活运用String 一些函数,实现对String 的操作 private static String TAG = &amp;amp;amp;quot;MainActivity&amp;amp;amp;quot;; private String str = &amp;amp;amp;quot; a,bB,1cCcc,2dDd d2dd &amp;amp;amp;quot;; Log.v(TAG,&amp;amp;amp
ADO.NET编写数据库增、删、改操作方法
CommandCommand对象的属性 CommandText:需要封装的sql语句或存储过程名称。 Connection:Command对象使用的数据库连接对象。Command对象的方法: ExecuteNonQuery() 执行增、删、改操作。 ExecuteScalar() 返回单一结果的查询。 ExecuteReader() 返回只读数据表的查询。ExecuteNonQuery()
数据库的增、删、改、查操作-----(一)
数据库的增、删、改、查操作
数据库(三)表数据的增,删,改操作
3.1插入数据 insert … values语句插入数据 1.插入完整数据 insert into tb_admin values(1,'mr','mrsoft','2018-05-07 16:56:00'); 2.插入数据记录的一部分 insert into tb_admin(user,password) values('rjkflm','111'); 由于在设计数据表时候...
dedecms 数据库的增、删、改、查
数据库初始化 // 在工程所有文件中均不需要单独初始化这个类,可直接用 $dsql 或 $db 进行操作 // 为了防止错误,操作完后不必关闭数据库 $dsql = $db = new DedeSql(FALSE); 数据库的增加 例 &amp;lt;?php $query = &quot; INSERT INTO #@__myad(clsid,typeid,tagname,adname,ti...
java操作数据库万能增,删,改
java万能增,删,改重用性决定 一流 !
ADO.NET编程--数据库增、删、查、改
一、常用数据类型: image类型,用来存储byte[] char nchar varchar nvarchar text ntext varchar(max) nvarchar(max) 以上这些数据类型都表示字符串。 1. 带n和不带n的区别:    不带n的数据类型,存储中文等双字节字符,占用两个字节,存储英文,数字等每个字符占用1个字节。   例如: char(2) 表示可以存储2个...
django 数据库(Mysql)的,增,删,改,查
安装Django pip install django==2.0.4 创建Django项目 步骤 创建Django项目 django-admin startproject 工程名称 创建子应用 python manage.py startapp 子应用名称 book = models.ForeignKey(Book...
mysql的应用数据库的 增 删 查 改
SQL语句1. 创建新表 create table tabname(col1 type1 [not null] [primarykey],col2 type2 [not null],..) 2. 查询: select * from table1 where 范围 3. 插入: insert into table1(field1,field2) values(value1,value2) 4. 删除:
QT:SQLite数据库 '增、删、改、查'
SQLite数据库 '增、删、改、查' 1. 数据库简介  数据库指的是以一定方式存储在一起,能为多个用户共享,具有尽可能小的冗余度的特点,是与应用程序彼此独立的数据集合。  // 一定方式:可以理解为策略、算法  // 网盘相同的文件是以 MD5 码的形式标记相同的文件,以网络共享。 2. 和数据相关的术语  DBMS '数据库管理系统'  DBA  '数据库管理员'
数据库的增,删,改,查(CURD)
增改查删可以用CURD来表示增加:———- create修改:update查找:read删除:delete增加create:insert +表名+值+(信息); insert +表名(字段名1,字段名2)+ value +(信息)删除delect:delect字段=’信息’来自+表名其中字段名=信息和/或字段名=信息查找阅读:select * from +表名从整个表中查找; 选择字段1,字段2 ...
Android数据库面向对象之增、删、改、查
在项目开发中都会碰要将一些数据缓存在本地,SharedPreferences、流的方式写入文件、数据库等方式都可实现,在这些方式中,数据库相对来说要繁琐些,使用的频率相应的也会少些,刚好这段时间在学习数据库,故将所学记录于此。 一般情况下都会将数据库存储在data/目录下,这里是将数据库存在的sd里面,不是data/目录下,在学习中涉及到这些方面的知识: 1、泛型 2、注解 3、反射 4、
数据库的快速使用,(增,删,改)命令格式使用!
往表中添加一列          alter table t_plat_devinfo(表名) add  Pname(列名) varchar2(64)(格式) null(能否为空); 删除表中的指定列        alter  table t_plat_devinfo(表名) drop column createdate(列名); 数据库指定表添加数据        I
SQL SERVER 数据库-增-删-改-查
create database Jacob create table 班级表 ( ID int primary key identity(1,1),--设主键约束,自动增量 班级名 nvarchar(50) unique, --唯一约束 班级类型 nvarchar(50) not null --非空约束 ) create table 学生表 ( ID int
数据库的增、删、改、查例子
-- 创建数据库 CREATE DATABASE mydb; -- 删除数据库 DROP DATABASE mydb; -- 创建表 CREATE TABLE t_user( -- primary KEY 申请该列为主键列。 主键列不能重复,不能为null -- AUTO_INCREMENT 自动增长列,由DBMS分配该列的值,确保该列的值不重复 -- 同时不为null
一个数据库的增\删\改的问题
为什么,在GUI做增删改后.操作成功..但是在GUI中看不到我所做的操作.只有把程序关闭后,,在重新运行一下程序..这时增删改的内容才会被看到..如何能在GUI上操作完后.就马上可以在GUI上显示啊...rn请各位朋友多多帮助.....
Django 数据库的增、删、改、查
#Django 数据库的增、删、改、查 ##增 #views.py def add_xiaoqu(resquest): #1 xiaoqu = models.Xiaoqu() xiaoqu.name = '吉利大学' xiaoqu.save() #2 models.Xiaoqu.objects.create(name='吉利大学1') return...
数据库的增,删,改,查操作
该程序主要是:通讯录管理。其中主要包含的知识有数据库的增,删,改,查操作
servlet之数据库的增,删,改,查
查询: 修改: 删除: 添加: 代码: frame.jsp(显示左右界面) framemenu.jsp 用户管理 添加用户 新闻管理 FindPage.java(构造分页) public class FindPage extends HttpServlet { private static final long seri
Hibernate实现数据库增、删、改、查
1.导入hibernate jar包和mysql jar包,修改配置文件hibernate.cfg.xml   <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configura
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法