- 【学习总结|DAY031】后端Web实战(员工管理)三
123yhy传奇
学习mysqljavamybatis
一、删除员工功能实现(一)需求分析删除单条员工数据可视为特殊的批量删除,开发一个接口即可满足删除员工的功能需求,该接口需实现根据ID删除单个员工信息以及根据ID批量删除员工信息。(二)代码实现Controller层:提供两种接收请求参数的方式。通过集合接收参数的代码如下:@DeleteMappingpublicResultdelete(@RequestParamListids){log.info(
- Linux MariaDB使用OpenSSL安装SSL证书
Meta39
MySQLOracleMariaDBLinuxWindowsssllinuxmariadb
进入到证书存放目录,批量删除.pem证书警告:确保已经进入到证书存放目录find.-typef-iname\*.pem-delete查看是否安装OpenSSLopensslversion没有则安装yuminstallopensslopenssl-devel开启SSL编辑/etc/my.cnf文件(没有的话就创建,但是要注意,在/etc/my.cnf.d/server.cnf配置了datadir的,
- el-table实现全选整表,单元一页复选框功能
周bro
vue.jselementuijavascript前端
全选整表单选一页0":popper-append-to-body="false":total="tableData.length":page-size="pageObj.pagesize":page-sizes="[10,50,100]"layout="total,sizes,prev,pager,next"@size-change="handleSizeChange"@current-chang
- treeselect只选了分支节点全选_vue Treeselect 树形下拉框:获取选中节点的ids和lables操作...
weixin_39637285
API:https://vue-treeselect.js.org/#events1.ids:即value1.lable:需要用到方法:@select(node,instanceId)和@deselect(node,instanceId)v-model="DRHA_EFaultModeTree_value":multiple="true":options="DRHA_EFaultModeTree_
- IIS 服务器 win7 配置
Rising_life
打开控制面板/所有控制面板项,选择默认程序。打开程序和功能选择打开或关闭Windows功能看到internet信息服务选项,然后按照图中设置。PS:打√的选项下面为全选,方圈的下面按照图中打√的选择即可。然后点击确定,会进入系统安装设置安装完成后,窗口会消失,回到控制面板,选择管理工具进入管理工具窗口,此时就可以看到internet信息服务了,不过此时需注意,因为有两个大致相同的,需要选择的是in
- 【ABAP】ALV刷新显示及双击ALV跳转事务码的方法
Lingarrrd
sapabapsapabap
ALV刷新显示的方法如下callmethodref1->check_changed_data."检查alv变更callmethodref1->refresh_table_display."刷新显示刷新按钮when'&NTE'.rs_selfield-refresh='X'."REFESHALV如何只选中筛选后的全选或取消全选,方法如下。lt_filter表中就是被筛选后的数据,后续通过不同操作取得
- Blender纹理绘制无效的几种解决方案(备忘录01)
2301_78998594
blender
图片来源:b站:Nora仙仙仙https://www.bilibili.com/video/BV1x8411r76A/解决方案:1.1:到编辑模式下选中物体后重试;1.2(本人遇到的问题):打开面朝向模式,蓝色的物体是正常物体,红色表示面朝向相反,你画的东西都在背面全选并SHIFT+N,就可以把面朝向反过来
- spring和Mybatis的各种查询
eqa11
springmybatisjava
文章目录六**、MyBatis的各种查询功能**6.1、查询一个实体类的对象6.2、查询一个list集合6.3、查询单个数据6.4、查询一条数据为Map集合6.5、查询多条数据为Map集合七、**特殊SQL的执行**7.1、模糊查询7.2、批量删除7.3、动态设置表名7.4、添加功能获取自增的主键八、**自定义映射resultMap一对一、多对一、一对多、多对多**8.1、resultMap处理字
- 2024金九银十208道Java中高级高频面试题(含答案)
2401_85125308
java开发语言
12.什么是集合?集合和数组的区别。13.常用的集合类有哪些?它们的区别是什么?14.集合如何安全地批量删除元素?15.java怎么实现动态代理?有什么意义?16.什么是死锁?死锁产生的原因是什么?如何避免死锁?17.synchronized的作用。18.volatile关键字的作用19.线程怎么保持同步?20.什么是CAS?21.乐观锁与悲观锁?乐观锁的实现方式?22.Lock与synchron
- QTreeWidget实现复选框的全选/部分选择/半选择状态
死嗑到底
QtPythonPyQt(pythongui编程)ui
importsysfromPyQt5.QtCoreimportQtfromPyQt5.QtWidgetsimportQApplication,QWidget,QTreeWidget,QTreeWidgetItem,QLabel,QHBoxLayoutclassDemo(QWidget):def__init__(self):super(Demo,self).__init__()self.resize
- docker批量删除none镜像
青纹刀狼
1.直接用dockerimages|grepnone|awk‘{print$3}’|xgarsdockerrmi通过关键字搜索,得到dockerid,进行删除
- pycharm批量注释、批量取消注释
默直
pycharm批量注释、批量取消注释在使用pycharm编写python时,需要对多行进行注释,一个一个敲击“#”,浪费浪费了大量时间,效率也不是太高,那么怎么解决此种问题呢,研究了好久终于被我发现了,满满的开心。查看将要注销的数据,如下:将要注释的数据第一步:选择要注释的数据,这里Ctrl+a,全选;背景变化第二步:同时按Ctrl+/,显示如下,说明已注释:注释数据那怎么取消注释呢?第一步:选择
- 2021-12-06
A阿a
购物车案例table{border-collapse:collapse;}td,th{text-align:center;border:1pxsolid#ccc;padding:2px10px;}tdimg{width:100px;}tdinput{width:40px;text-align:center;outline:none;}全选商品名称商品图片商品价格购买数量小计操作总计://定义一个商
- java批量导入和批量删除_Hibernate批处理操作优化 (批量插入、更新与删除)
林落年
java批量导入和批量删除
问题描述我开发的网站加了个新功能:需要在线上处理表数据的批量合并和更新,昨天下午发布上线,执行该功能后,服务器的load突然增高,变化曲线异常,SA教育了我一番,让我尽快处理,将CPU负载降低。工作所需,我经常要写些程序批量处理数据,每次执行几十万数据处理的时候,我机子的CPU都会飙高,而且数据处理速度会越来越慢。比如第一个1W条要5分钟,第二个1W条就要10分钟,要干其他事情的时候机子也卡的不行
- 官方发文CentOS 将于6月30全面停服,最全选型攻略
逆天-逍遥哥哥
linuxcentoslinux运维
官方发文CentOS将于6月30全面停服,最全选型攻略6月30日,CentOS将停止更新和维护,这对于正在使用CentOS的国内企业来说,是一次严峻的考验。意味着用户将无法获得官方升级和补丁,直接导致业务运行面临安全挑战与管理风险。同时也势必造成服务器操作系统的迁移浪潮,国产操作系统也迎来了新的发展机遇。Centos的前世今生Linux凭借优秀的设计,不凡的性能,加上IBM、INTEL、CA、CO
- vue实现穿梭框功能(ES6语法)
lucky*girl
vue.jshtml5javascript
1、vue两种实现穿梭框的方式。方式一:Vue结合ES6语法实现穿梭框。(优点:自写组件复用性强,易修改)方式二:引入Element中transfer插件简单写了CSS样式和HTML。(优点,引入组件即可,易上手操作)2、实现效果:左边为复选框按钮,可全选可单选,选中后点击按钮到左侧。右边实现效果同理。并用计算属性动态计算出每个数组共多少条数据,选中了多少条。实现效果图如下:自写组件:引入Elem
- Java整合ElasticSearch教程全网独一份(保姆级)
听忆.
elasticsearchjavaintellij-ideajava-ee
目录一、ES概述1.1ES的介绍二、Java操作ElasticSearch【重点】2.0导入数据2.1Java连接ES2.2Java操作索引2.2.1创建索引2.2.2检查索引是否存在2.2.3删除索引2.3Java操作文档2.3.1添加文档操作2.3.2修改文档2.3.3删除文档2.4Java批量操作文档2.4.1批量添加2.4.2批量删除三、ElasticSearch的各种查询3.1term&
- uni-app checkbox全选功能(1)
2401_84092666
程序员uni-app
复选选操作(checkbox){{item.label}}全选
- ECMAScript 6 基础
无敌开心
ecmascript前端开发语言
ECMAScript6基础课堂目标录播视频要点回顾掌握ES6基本使用了解数据驱动视图模式完成员工列表案例完成百度音乐案例本节知识要点ES6+基本使用数据驱动视图员工列表案例百度音乐全选案例ECMAScript6简介JavaScript三大组成部分ECMAScriptDOMBOMECMAScript发展历史https://developer.mozilla.org/zh-CN/docs/Web/Ja
- Word/WPS中一次选中所有表格,调整样式?
啊喔啊喔R
word
word一次选中所有表格stepone:ALT+F8创建宏Steptwo:将代码粘贴进编辑器,直接覆盖编辑器中原有代码Sub全选所有表格()DimtAsTablean=MsgBox("即将选择选区内所有表格,若无选区,则选择全文表格。",vbYesNo,"鱼腹酱提醒您")Ifan-6ThenExitSubSetrg=IIf(Selection.Type=wdSelectionIP,ActiveDo
- Vue复选框的全选
猫咪_be3d
Vue复选框的全选全选-1"@click="checkOne(sports.id)"/>{{item.name}}newVue({el:"#app",data:{sports:[{id:1,name:"打篮球"},{id:2,name:"太极拳"},{id:3,name:"乒乓球"},{id:4,name:"踢足球"},{id:5,name:"棒球"}],sportsIds:[1,3,4],isC
- docker批量删除容器或镜像
wcy10086
docker容器运维
删除容器停止所有容器删除所有容器,需要先停止所有运行中的容器dockerstop`dockerps-a-q`dockerps-a-q,意思是列出所有容器(包括未运行的),只显示容器编号,其中-a:显示所有的容器,包括未运行的。-q:静默模式,只显示容器编号。1.删除所有处于停止状态的容器使用以下命令删除所有处于停止状态的容器:dockercontainerprune该命令将删除所有未运行的容器,释
- vue+elementUI实现右击指定表格列的单元格显示选择框
yuhuamei
vue.jselementui前端
一、template代码如下:1、表格单元格中添加的代码:{{scope.row[item.prop]}}2、右键时弹出的选择框代码选择铁心级号全选显示-->隐藏js代码如下://铁心级号选择时handleCheckedChange:function(val){letcheckedCount=val.length;this.checkAll=checkedCount===this.coreLeve
- 计算机常用快捷键
unity学院
计算机常识操作
计算机常用快捷键-Ctrl快捷键Ctrl+S保存Ctrl+W关闭程序Ctrl+N新建Ctrl+O打开Ctrl+Z撤销Ctrl+F查找Ctrl+X剪切Ctrl+C复制Ctrl+V粘贴Ctrl+A全选Ctrl+[缩小文字Ctrl+]放大文字Ctrl+B粗体Ctrl+I斜体Ctrl+U下划线Ctrl+Shift输入法切换Ctrl+空格中英文切换Ctrl+回车QQ号中发送信息Ctrl+Home光标快速移到
- QTableWidget表头添加复选框实现全选功能
hss2799
Qt
QTableWidget表头添加复选框实现全选功能主要是CheckBoxHeaderView继承QHeaderView,重写paintSection函数voidcheckStatusChange(bool);是复选框是否选中的信号。详细代码如下:#ifndefCHECKBOXHEADERVIEW_H#defineCHECKBOXHEADERVIEW_H#include#include#includ
- Redis 由浅入深 (6) - Redis批量删除key
澄风
redisredisbootstrap数据库
redis删除缓存日常工作当中经常会遇到删除Rediskey的问题,如果是删除某个key,使用DELkeyname或者EXPIREkeynamettl都可以实现。但如果想要一次性删除多个key应该怎么处理呢?Redis本身并不支持批量删除key的操作,下面我们就来看看如何巧妙地处理这类问题。场景一:删除所有的key如果需要执行初始化的操作,清理掉数据库所有的键,可以使用FLUSHDB或者FLUSH
- wps电子表格(xlsx)在excel打开时,多余图形(shapes)的处理
work-harder
wpsexcelvba
背景:1.win10,excel打开wps生成的xlsx文档;2.文档中有多余的图形,经检测为shape大类;3.文档中可见的图形可以全选后删除;但是不可见部分仍然存在;4.vba删除时,可以直接循环删除,类似shape.delete;5.vba删除前,如果逐一选择(shape.select)以便查看,则出现多种错误(vba运行异常),但都是运行时错误错误记录:1.类型多样:用shape.name
- 【MyBatis XML实现批量删除操作】
武帝为此
前后端mybatisxml
文章目录编写Mapper接口编写MapperXML配置文件调用批量删除方法编写Mapper接口定义一个Mapper接口,用于声明批量删除的方法。使用XML配置的方式来定义SQL语句。publicinterfaceUserMapper{voidbatchDelete(ListuserIds);}编写MapperXML配置文件在MyBatis的MapperXML配置文件中编写批量删除的SQL语句。使用
- mybatis使用foreach进行批量删除插入
yyyyyuanxian
mybatis-plusmybatis
插入:mapper:IntegerinsertBatchUser(ListuserList);xml:INSERTINTOUser(USER_ID,VER)values(#{entity.userId},#{entity.ver}删除:mapper:IntegerdeleteBatchUser(ListuserList);xml:DELETEFROMUSERWHEREUSER_IDIN#{item
- endnote20向word中插入参考文献样式修改
jhouine
endnoteword
endnote20向word中插入参考文献样式修改打开word,按如图操作段落缩进设置为无最后点击确定即可CTRL+A全选再CTRL+6可去除域代码
- Linux的Initrd机制
被触发
linux
Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。本文首先介绍了什么是 initrd 技术,然后分别介绍了 Linux2.4 内核和 2.6 内核的 initrd 的处理流程。最后通过对 Lin
- maven本地仓库路径修改
bitcarter
maven
默认maven本地仓库路径:C:\Users\Administrator\.m2
修改maven本地仓库路径方法:
1.打开E:\maven\apache-maven-2.2.1\conf\settings.xml
2.找到
 
- XSD和XML中的命名空间
darrenzhu
xmlxsdschemanamespace命名空间
http://www.360doc.com/content/12/0418/10/9437165_204585479.shtml
http://blog.csdn.net/wanghuan203/article/details/9203621
http://blog.csdn.net/wanghuan203/article/details/9204337
http://www.cn
- Java 求素数运算
周凡杨
java算法素数
网络上对求素数之解数不胜数,我在此总结归纳一下,同时对一些编码,加以改进,效率有成倍热提高。
第一种:
原理: 6N(+-)1法 任何一个自然数,总可以表示成为如下的形式之一: 6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,…)
- java 单例模式
g21121
java
想必单例模式大家都不会陌生,有如下两种方式来实现单例模式:
class Singleton {
private static Singleton instance=new Singleton();
private Singleton(){}
static Singleton getInstance() {
return instance;
}
- Linux下Mysql源码安装
510888780
mysql
1.假设已经有mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz
(1)创建mysql的安装目录及数据库存放目录
解压缩下载的源码包,目录结构,特殊指定的目录除外:
- 32位和64位操作系统
墙头上一根草
32位和64位操作系统
32位和64位操作系统是指:CPU一次处理数据的能力是32位还是64位。现在市场上的CPU一般都是64位的,但是这些CPU并不是真正意义上的64 位CPU,里面依然保留了大部分32位的技术,只是进行了部分64位的改进。32位和64位的区别还涉及了内存的寻址方面,32位系统的最大寻址空间是2 的32次方= 4294967296(bit)= 4(GB)左右,而64位系统的最大寻址空间的寻址空间则达到了
- 我的spring学习笔记10-轻量级_Spring框架
aijuans
Spring 3
一、问题提问:
→ 请简单介绍一下什么是轻量级?
轻量级(Leightweight)是相对于一些重量级的容器来说的,比如Spring的核心是一个轻量级的容器,Spring的核心包在文件容量上只有不到1M大小,使用Spring核心包所需要的资源也是很少的,您甚至可以在小型设备中使用Spring。
 
- mongodb 环境搭建及简单CURD
antlove
WebInstallcurdNoSQLmongo
一 搭建mongodb环境
1. 在mongo官网下载mongodb
2. 在本地创建目录 "D:\Program Files\mongodb-win32-i386-2.6.4\data\db"
3. 运行mongodb服务 [mongod.exe --dbpath "D:\Program Files\mongodb-win32-i386-2.6.4\data\
- 数据字典和动态视图
百合不是茶
oracle数据字典动态视图系统和对象权限
数据字典(data dictionary)是 Oracle 数据库的一个重要组成部分,这是一组用于记录数据库信息的只读(read-only)表。随着数据库的启动而启动,数据库关闭时数据字典也关闭 数据字典中包含
数据库中所有方案对象(schema object)的定义(包括表,视图,索引,簇,同义词,序列,过程,函数,包,触发器等等)
数据库为一
- 多线程编程一般规则
bijian1013
javathread多线程java多线程
如果两个工两个以上的线程都修改一个对象,那么把执行修改的方法定义为被同步的,如果对象更新影响到只读方法,那么只读方法也要定义成同步的。
不要滥用同步。如果在一个对象内的不同的方法访问的不是同一个数据,就不要将方法设置为synchronized的。
- 将文件或目录拷贝到另一个Linux系统的命令scp
bijian1013
linuxunixscp
一.功能说明 scp就是security copy,用于将文件或者目录从一个Linux系统拷贝到另一个Linux系统下。scp传输数据用的是SSH协议,保证了数据传输的安全,其格式如下: scp 远程用户名@IP地址:文件的绝对路径
- 【持久化框架MyBatis3五】MyBatis3一对多关联查询
bit1129
Mybatis3
以教员和课程为例介绍一对多关联关系,在这里认为一个教员可以叫多门课程,而一门课程只有1个教员教,这种关系在实际中不太常见,通过教员和课程是多对多的关系。
示例数据:
地址表:
CREATE TABLE ADDRESSES
(
ADDR_ID INT(11) NOT NULL AUTO_INCREMENT,
STREET VAR
- cookie状态判断引发的查找问题
bitcarter
formcgi
先说一下我们的业务背景:
1.前台将图片和文本通过form表单提交到后台,图片我们都做了base64的编码,并且前台图片进行了压缩
2.form中action是一个cgi服务
3.后台cgi服务同时供PC,H5,APP
4.后台cgi中调用公共的cookie状态判断方法(公共的,大家都用,几年了没有问题)
问题:(折腾两天。。。。)
1.PC端cgi服务正常调用,cookie判断没
- 通过Nginx,Tomcat访问日志(access log)记录请求耗时
ronin47
一、Nginx通过$upstream_response_time $request_time统计请求和后台服务响应时间
nginx.conf使用配置方式:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_r
- java-67- n个骰子的点数。 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。
bylijinnan
java
public class ProbabilityOfDice {
/**
* Q67 n个骰子的点数
* 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。
* 在以下求解过程中,我们把骰子看作是有序的。
* 例如当n=2时,我们认为(1,2)和(2,1)是两种不同的情况
*/
private stati
- 看别人的博客,觉得心情很好
Cb123456
博客心情
以为写博客,就是总结,就和日记一样吧,同时也在督促自己。今天看了好长时间博客:
职业规划:
http://www.iteye.com/blogs/subjects/zhiyeguihua
android学习:
1.http://byandby.i
- [JWFD开源工作流]尝试用原生代码引擎实现循环反馈拓扑分析
comsci
工作流
我们已经不满足于仅仅跳跃一次,通过对引擎的升级,今天我测试了一下循环反馈模式,大概跑了200圈,引擎报一个溢出错误
在一个流程图的结束节点中嵌入一段方程,每次引擎运行到这个节点的时候,通过实时编译器GM模块,计算这个方程,计算结果与预设值进行比较,符合条件则跳跃到开始节点,继续新一轮拓扑分析,直到遇到
- JS常用的事件及方法
cwqcwqmax9
js
事件 描述
onactivate 当对象设置为活动元素时触发。
onafterupdate 当成功更新数据源对象中的关联对象后在数据绑定对象上触发。
onbeforeactivate 对象要被设置为当前元素前立即触发。
onbeforecut 当选中区从文档中删除之前在源对象触发。
onbeforedeactivate 在 activeElement 从当前对象变为父文档其它对象之前立即
- 正则表达式验证日期格式
dashuaifu
正则表达式IT其它java其它
正则表达式验证日期格式
function isDate(d){
var v = d.match(/^(\d{4})-(\d{1,2})-(\d{1,2})$/i);
if(!v) {
this.focus();
return false;
}
}
<input value="2000-8-8" onblu
- Yii CModel.rules() 方法 、validate预定义完整列表、以及说说验证
dcj3sjt126com
yii
public array rules () {return} array 要调用 validate() 时应用的有效性规则。 返回属性的有效性规则。声明验证规则,应重写此方法。 每个规则是数组具有以下结构:array('attribute list', 'validator name', 'on'=>'scenario name', ...validation
- UITextAttributeTextColor = deprecated in iOS 7.0
dcj3sjt126com
ios
In this lesson we used the key "UITextAttributeTextColor" to change the color of the UINavigationBar appearance to white. This prompts a warning "first deprecated in iOS 7.0."
Ins
- 判断一个数是质数的几种方法
EmmaZhao
Mathpython
质数也叫素数,是只能被1和它本身整除的正整数,最小的质数是2,目前发现的最大的质数是p=2^57885161-1【注1】。
判断一个数是质数的最简单的方法如下:
def isPrime1(n):
for i in range(2, n):
if n % i == 0:
return False
return True
但是在上面的方法中有一些冗余的计算,所以
- SpringSecurity工作原理小解读
坏我一锅粥
SpringSecurity
SecurityContextPersistenceFilter
ConcurrentSessionFilter
WebAsyncManagerIntegrationFilter
HeaderWriterFilter
CsrfFilter
LogoutFilter
Use
- JS实现自适应宽度的Tag切换
ini
JavaScripthtmlWebcsshtml5
效果体验:http://hovertree.com/texiao/js/3.htm
该效果使用纯JavaScript代码,实现TAB页切换效果,TAB标签根据内容自适应宽度,点击TAB标签切换内容页。
HTML文件代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
- Hbase Rest API : 数据查询
kane_xie
RESThbase
hbase(hadoop)是用java编写的,有些语言(例如python)能够对它提供良好的支持,但也有很多语言使用起来并不是那么方便,比如c#只能通过thrift访问。Rest就能很好的解决这个问题。Hbase的org.apache.hadoop.hbase.rest包提供了rest接口,它内嵌了jetty作为servlet容器。
启动命令:./bin/hbase rest s
- JQuery实现鼠标拖动元素移动位置(源码+注释)
明子健
jqueryjs源码拖动鼠标
欢迎讨论指正!
print.html代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<title>发票打印</title>
&l
- Postgresql 连表更新字段语法 update
qifeifei
PostgreSQL
下面这段sql本来目的是想更新条件下的数据,可是这段sql却更新了整个表的数据。sql如下:
UPDATE tops_visa.visa_order
SET op_audit_abort_pass_date = now()
FROM
tops_visa.visa_order as t1
INNER JOIN tops_visa.visa_visitor as t2
ON t1.
- 将redis,memcache结合使用的方案?
tcrct
rediscache
公司架构上使用了阿里云的服务,由于阿里的kvstore收费相当高,打算自建,自建后就需要自己维护,所以就有了一个想法,针对kvstore(redis)及ocs(memcache)的特点,想自己开发一个cache层,将需要用到list,set,map等redis方法的继续使用redis来完成,将整条记录放在memcache下,即findbyid,save等时就memcache,其它就对应使用redi
- 开发中遇到的诡异的bug
wudixiaotie
bug
今天我们服务器组遇到个问题:
我们的服务是从Kafka里面取出数据,然后把offset存储到ssdb中,每个topic和partition都对应ssdb中不同的key,服务启动之后,每次kafka数据更新我们这边收到消息,然后存储之后就发现ssdb的值偶尔是-2,这就奇怪了,最开始我们是在代码中打印存储的日志,发现没什么问题,后来去查看ssdb的日志,才发现里面每次set的时候都会对同一个key