- mac 系统下使用clion调试redis4源码
迹忆客
redis编程redismac
原文:mac系统下使用clion调试redis4源码clion主要使用的是cmake+make进行编译。所以对于redis4来说,主要的就是先编写CMakeLists.txt文件。CmakeLists.txt文件redis4/CMakeLists.txtcmake_minimum_required(VERSION3.15)project(redis4)set(CMAKE_BUILD_TYPE"De
- Node.js 调用 DeepSeek API 完整指南
m0_74823490
面试学习路线阿里巴巴node.js
简介本文将介绍如何使用Node.js调用DeepSeekAPI,实现流式对话并保存对话记录。Node.js版本使用现代异步编程方式实现,支持流式处理和错误处理。1.环境准备1.1系统要求Node.js14.0或更高版本npm包管理器1.2项目结构deepseek-project/├──main.js#主程序├──package.json#项目配置文件└──conversation.txt#对话记录
- java word在线编辑_[原创]Java开发在线打开编辑保存Word文件(支持多浏览器)
嘻嘻哈哈哦哦吧
javaword在线编辑
Java调用PageOffice实现在线编辑保存Word文件(以jsp调用为例,支持SSM、SSH、SpringMVC等流行框架)1.下载PageOffice开发包:http://www.zhuozhengsoft.com/dowm/下载PageOfficeforJAVA2.以Myeclipse为例,新建一个WebProject,比如:wordonline3.解压PageOffice开发包,拷贝“
- SpringCloud之网关Gateway
2401_85358655
springcloudgatewayspring
3、过滤器(Filter):一个标准的SpringWebFilter,SpringCloudGateway中的Filter分为两种类型:GatewayFilter和GlobalFilter。过滤器Filter可以对请求和响应进行处理2、基本搭建①、新建模块②、导入依赖4.0.0com.gatewaycode0.0.1-SNAPSHOTgatewayDemoprojectforSpringBoot8
- Linux安装Anaconda、Miniconda
让我安静会
配置与安装linux运维服务器
Anaconda下载:https://repo.anaconda.com/archive/MinicondaDocument:https://docs.conda.io/projects/miniconda/en/latest/index.html进入Linux系统,到/data/file/文件夹下,直接将anaconda下载到该文件夹中:wgethttps://repo.anaconda.com
- WPF: 把引用的dll移动到自定义路径
zlcntt
UI编程(C#)dll
需求:有A.exe和B.exe,都引用了C.dll,output路径都是W:\Debug.A和B都添加了对C的引用,正常情况下C会被复制到output里面。C这样子的dll很多,不想把它们和exe放在同一级的目录,移动到子目录,如W:\Debug\3rdDll办法:1.首先设置C.dll打开ProjectA的References,选中C.dll,右键Properties,CopyLocal设为Fa
- 如何在Java中处理异步操作中的异常?
北执南念
工作中总结加强学习java
如何在Java中处理异步操作中的异常?文章目录如何在Java中处理异步操作中的异常?1.使用Future和ExecutorService2.使用CompletableFuture3.使用RxJava或ProjectReactor4.异步框架的特定异常处理在Java中处理异步操作中的异常是一个重要的任务,因为异步编程模型通常意味着异常不会像同步代码那样直接被抛出到调用栈中。处理异步操作中的异常通常涉
- 使用命令方式下载和安装 Microsoft Office ProPlus 2024 x64/x86(含:Project Pro + Visio Pro)
hbcoolair
microsoft
2024年10月1日,微软公司正式发布了MicrosoftOffice2024,支持在线订阅下载和安装。该办公套件引入了一系列新的功能和改进,例如Excel中的动态图表、Outlook的改进搜索功能、PowerPoint的实时相机源嵌入,以及OneNote的增强墨迹体验等。本文的解决思路是,使用自制的命令工具,下载和安装功能最齐全的Office2024专业版,其优点在于无复杂选项,用户操作简单,下
- k8s集群离线安装kuberay operator
thinkerCoder
kubernetes容器云原生
1,安装方式采用helm安装方式,首先下载对应的helmchart,这里采用v1.2.2版本,下载地址:https://github.com/ray-project/kuberay-helm/releases/tag/kuberay-operator-1.2.22,解压并修改镜像源由于是在内网环境下搭建,因此需要将对应的镜像下载下来,并导入到本地镜像仓库,并修改values.yaml的镜像仓库地址
- windows下使用bat打开程序,并解决闪退问题
grahamzhu
VS+C#专栏windowsbat命令行批处理文件自动启动程序
1.如何使用bat打开一个已经编译好的exe文件示例:start/d"F:\testProject\bin\Debug"Shell_Component.exestart+空格+/d(后面不要空格)+引号并包裹exe程序路径+空格+exe名称参考:https://blog.csdn.net/zhangshengqiang168/article/details/867627422.解决bat程序闪退问
- android studio build异常
JavaPub-rodert
ERROR解决androidstudioandroidandroid-studio
文章目录异常解决异常ERROR:FailedtoinstallthefollowingAndroidSDKpackagesassomelicenceshavenotbeenaccepted.platforms;android-28AndroidSDKPlatform28build-tools;28.0.2AndroidSDKBuild-Tools28.0.2Tobuildthisproject,a
- ARCGIS PRO SDK MapProjectItem 地图项目类
xa13850869
arcgis
一、获取工程中的所有地图DimprojectMapsAsIEnumerable(OfMapProjectItem)=Project.Current.GetItems(OfMapProjectItem)()二、从项目中删除地图DimmapProjItem=Project.Current.GetItems(OfMapProjectItem)().FirstOrDefault(Function(mpi)
- cmake 编译找不到 Qt5WebKitConfig.cmake
SimpleForest
杂七杂八
用cmake编译时出现如下错误提示:CMakeErroratCMakeLists.txt:313(FIND_PACKAGE):Bynotproviding"FindQt5WebKit.cmake"inCMAKE_MODULE_PATHthisprojecthasaskedCMaketofindapackageconfigurationfileprovidedby"Qt5WebKit",butCMa
- Unity的开发框架
yuhahahhh
unity游戏引擎
一.分析工程结构框架GameObject与ComponentGameObject:游戏对象相当于组件的容器Component:组件附于游戏对象不同的特性二.工程文件夹的管理结构新建一个Unity工程,目录结构:1.Assert文件2.Library文件3.ProjectSettings文件4.运行时还会多出Temp目录5.如果用Monodevelop或VS打开还会生成很多工程文件工程文件夹功能:文
- Ceedling:C语言项目的测试驱动开发利器
温艾琴Wonderful
Ceedling:C语言项目的测试驱动开发利器CeedlingRuby-basedunittestingandbuildsystemforCprojects项目地址:https://gitcode.com/gh_mirrors/ce/Ceedling项目介绍Ceedling是一个专为C语言项目设计的构建系统,它基于Ruby的Rake构建系统,并在此基础上进行了扩展。Ceedling不仅简化了C项目
- OSError: [Errno 22] Invalid argument错误解决方案
加油小萌兔
python
在做文件读取写入操作的时候遇见OSError:[Errno22]Invalidargument:'F:\\pythonProject\\Api\\common\\2022-03-11_15:37:23test.txt'的报错,单独的打印出文件路径明明是正确,但使用pythonopen()函数读写文件时就会报该错误错误代码:importosimporttimenow=time.strftime("%
- CMakeLists使用总结
我心向阳324
C/C++CMakeListsc++
CMakeLists使用总结常用变量预定义变量开关选项CMakeLists.txt的编写子目录下的CMakeLists.txt文件根目录下的CMakeLists.txt文件CMakeLists.txt的编译常用变量预定义变量#工程的根目录PROJECT_SOURCE_DIR#运行cmake命令的目录,通常是${PROJECT_SOURCE_DIR}/buildPROJECT_BINARY_DIR#
- CMakeLists使用
欢天喜地小姐姐
c++c++
1.预定义宏宏功能PROJECT_SOURCE_DIR使用cmake命令后紧跟的目录,一般是工程的根目录PROJECT_BINARY_DIR执行cmake命令的目录CMAKE_CURRENT_SOURCE_DIR当前处理的CMakeLists.txt所在的路径CMAKE_CURRENT_BINARY_DIRtarget编译目录EXECUTABLE_OUTPUT_PATH重新定义目标二进制可执行文件
- MQTT实战之在vue和java中使用
沐暖沐
vue.jsjava前端
在VUE中使用MQTT1、创建vue项目(使用node版本为20.12.0)>>npmcreatevite@latestNeedtoinstallthefollowingpackages:
[email protected]?(y)y√Projectname:...mqtt-vue√Selectaframework:»Vue√Selectavariant:»JavaScript
- MongoDB笔记02-MongoDB基本常用命令
齐 飞
#数据库相关笔记数据库后端前端数据库mongodb笔记
文章目录一、前言二、数据库操作2.1选择和创建数据库2.2数据库的删除3集合操作3.1集合的显式创建3.2集合的隐式创建3.3集合的删除四、文档基本CRUD4.1文档的插入4.1.1单个文档插入4.1.2批量插入4.2文档的基本查询4.2.1查询所有4.2.2投影查询(ProjectionQuery):4.3文档的更新4.3.1覆盖的修改4.3.2局部修改4.3.3批量的修改4.3.4列值增长的修
- 【Maven】多module项目优雅的实现pom依赖管理
fixAllenSun
mavenjava前端
【Maven】多module项目优雅的实现pom依赖管理【一】方案设计原则【二】项目结构示例【三】实现思路【1】可能的问题点:【2】解决方案的思路:【3】需要注意的地方:【4】可能的错误:【四】实现案例【1】父POM设计(parent-project/pom.xml)【2】子模块示例(common-core/pom.xml)【3】模块间依赖(service-module/pom.xml)【五】总结
- 21 - 富文本框
一个微不足道的bug
Djangodjango
富文本框:一般用于写文章,编辑内容自带样式官网:https://pypi.org/project/django-tinymce/1.安装第三方库pipinstalldjango-tinymce-ihttps://pypi.tuna.tsinghua.edu.cn/simple/2.settings.py注册和配置编辑器#注册编辑器INSTALLED_APPS=[..."tinymce",]#富文本
- $ npx electron-forge import 一直报权限问题 resource busy or locked,
卢可以
electronarcgisjavascript
jack@LAPTOP-7DHDAAL0MINGW64/e/project/celetron-project/my-electron-app(master)$npxelectron-forgeimport>Checkingyoursystem>Checkinggitexists>Checkingnodeversion>CheckingpackageManagerversion√Foundnode@
- 什么是python uv,如何在windows上安装uv,基础的用法有哪些?
几道之旅
pythonuvwindows
什么是PythonUV?UV是由Astral公司(Rust工具Ruff的开发者)推出的高性能Python包管理工具,基于Rust编写,旨在替代传统的pip和pip-tools。其核心优势在于极快的速度(比pip快10-100倍)、轻量级设计(仅几十MB)以及现代化的依赖管理(支持pyproject.toml和uv.lock文件)。UV集成了虚拟环境管理、Python版本控制、依赖解析等功能,目标是
- DynamicTp动态线程池组件
@淡 定
python开发语言
maven引入:org.projectlomboklombokorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-autoconfigure-processorcom.alibaba.bootnacos-config-spring-boot-starter0.2.12org.droma
- Python Web 开发案例解析
伤我者亡
课程讲解python前端开发语言
一、Flask基础应用案例(一)项目搭建与初始化环境准备安装Python解释器,确保版本符合Flask要求,如Python3.6及以上。使用pip安装Flask库,命令为pipinstallflask。可以创建虚拟环境,如python-mvenvvenv,激活虚拟环境后再进行项目开发,避免依赖冲突。项目结构规划创建项目根目录,如my_flask_project。在根目录下创建app.py作为Fla
- ECE 219 Models and Algorithms
后端
Large-ScaleDataMining:ModelsandAlgorithmsECE219Winter2025Project2:DataRepresentationsandClusteringDueFebruary07,2025by11:59pmIntroductionMachinelearningalgorithmsareappliedtoawidevarietyofdata,includi
- Qt Pro、Pri、Prf
川谷_
qt开发语言
一、概述1、在Qt中,通常使用.pro(project)、pri(privateinclude)、prf(projectfile)三种文件扩展名来组织项目。对于模块化编程,Qt提供了Pro和Pri,Pro管理项目,Pri管理模块。2、pro文件是Qt项目的核心文件,包含了项目的所有编译信息,用于定义项目的源代码、包含路径、编译器选型、链接库等等。一个pro文件就是一个Qt项目,构建这个项目只需要执
- 【第四节】CMake 实践举例
攻城狮7号
CMake的入门与实践c++c语言
前言CMake是一个强大的跨平台构建工具,能够帮助开发者高效管理C++项目的构建过程。本文将通过一个简单的C++项目实例,详细介绍如何使用CMake进行项目配置、编译和构建。一、项目结构假设我们有一个简单的C++项目,结构如下:MyProject/├──CMakeLists.txt├──src/│├──main.cpp│└──mylib.cpp└──include/└──mylib.h-**mai
- Java虚拟线程:揭开java虚拟线程的面纱
Rverdoser
java开发语言
Java虚拟线程(ProjectLoom)是Java平台的一个实验性功能,旨在通过提供轻量级线程(称为虚拟线程)来解决传统线程在高并发场景下的性能瓶颈。虚拟线程背后的概念是使用现有的线程(称为承载线程或载体)来执行大量的任务,从而减少创建和销毁传统线程的开销。什么是Java虚拟线程?在Java虚拟线程中,虚拟线程被设计为比传统的操作系统线程更轻量级。每个虚拟线程都由一个或多个操作系统线程支持,但虚
- 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