- 数字ic后端设计从入门到精通9(含fusion compiler, tcl教学)setup time, hold time check lib/report详解
soulermax
单片机嵌入式硬件
checklib标准单元库中建立时间和保持时间约束的check格式用于数字IC设计中的静态时序分析(STA)。它定义了如何用表格形式表达触发器等顺序单元在不同输入信号和时钟转换速率下的建立和保持时间。(对应工艺角的lib文件)示例结构pin(D){direction:input;...timing(){related_pin:"CK";timing_type:"setup_rising";rise
- 数字ic后端设计从入门到精通8(含fusion compiler, tcl教学)ULVTLL、LVT、ULVT详解及应用
soulermax
硬件架构
LVTvsULVTvsULVTLL:从PPA、成本的角度出发比较维度LVTULVTULVTLL阈值电压(Vth)中等低极低但经过优化减少泄漏开关速度中等快略慢于ULVT但优于LVT驱动能力较低高较高,略低于ULVT漏电流较低高显著低于ULVT动态功耗中等低低静态功耗低高低面积小小略大(因需额外技术减少泄漏)延迟中等到高低略高于ULVT但低于LVT适用场景常规路径关键路径对功耗敏感的关键路径成本相对
- 数字IC后端流程简述
roc-ever
芯片数字ic
1.设计输入目标:接收前端设计(如RTL代码和约束文件)的输出。工具:前端设计工具(如SynopsysDesignCompiler或CadenceGenus)。步骤:确保前端设计的RTL代码经过综合并生成了门级网表(Netlist)。收集约束文件(Constraints),如时序约束(SDC文件)、功率约束等。2.综合(Synthesis)目标:将高层次的RTL代码转化为门级网表。工具:Synop
- 【Power Compiler手册】6.反标翻转活动
QRBQ94
数字IC低功耗设计数字IC低功耗设计PowerCompilersaif
5.反标翻转活动可以对设计中的切换活动进行反标,以生成准确的功耗计算。有关不同类型切换活动信息以及如何在门级设计上进行反标的信息,请参阅以下主题:反标切换活动的类型使用RTLSAIF文件反标切换活动使用门级SAIF文件反标切换活动
- minio 启动失败--Incorrect Usage: flag provided but not defined: -consoleaddress
我是老孙
程序人生
根据错误信息flagprovidedbutnotdefined:-consoleaddress,这表明Minio服务启动时使用了未定义的命令行参数--consoleaddress,导致启动失败。这个问题与Minio版本兼容性有关。问题原因参数名称变更:Minio版本>=RELEASE.2023-10-12T01-33-48Z:使用--console-address(带连字符)。更早版本:使用--c
- IDEA:程序编译报错:java: Compilation failed: internal java compiler error
天黑请闭眼
intellij-ideaJava异常处理intellij-ideajava
目录简介异常信息排查原因解决简介代码无法编译、无法打包异常信息java:Compilationfailed:internaljavacompilererror排查1、代码近期没有改动过,原先是可以正常编译的2、查看程序JDK,是JDK1.8没错,与原先JDK一致3、出现无法编译的情况是在升级IDEA版本之后4、使用IDEA-2024版本无法编译5、使用IDEA-2019、IDEA-2022版本可正
- 我的世界1.20.1forge模组开发进阶教程——Geckolib动画实体(3)
lemon_sjdk
java我的世界模组开发
注意:本章涉及大量的geckolib底层代码,补充讲解了上一节没讲的,如果看不懂请去学习JavaGeoEntity////Sourcecoderecreatedfroma.classfilebyIntelliJIDEA//(poweredbyFernFlowerdecompiler)//packagesoftware.bernie.geckolib.animatable;importjavax
- Keil MDK 嵌入式项目开发的一些问题:expected a “{“、declaration is incompatible with previous
我命由我12345
嵌入式-问题清单嵌入式硬件嵌入式嵌入式软件cc语言c++stm32
在使用KeilMDK开发项目,编译时,报如下错误***UsingCompiler'V5.06update1(build61)',folder:'D:\Keil_v5\ARM\ARMCC\Bin'Buildtarget'iwdg'assemblingstartup_stm32f10x_hd.s...compilingmain.c...user\main.c(3):error:#130:expecte
- 记:使用IDEA连接MySQL数据库出现的错误No driver files provided
includeza
mysqljdbcidea
使用IDEA连接MySQL数据库出现的错误Nodriverfilesprovided在重装了MySQL之后,使用idea连接时报了这个错误:Nodriverfilesprovided记录解决方法如下:点击蓝色提醒框ConfigDriver然后这里等着下载驱动就好了如果出现以下问题Error:java.net.SocketTimeoutException:connecttimedout请在yml或者
- vscode怎么点击路径直接跳转对应文件
三线码工
Vuevscodeide编辑器
在vue项目中经常要引入工具类、组件、模版等,想要直接去看对应文件,只能自己找到对应路径再去打开。我们可用在js项目中创建一个jsconfig.json文件,TS项目可以创建tsconfig.json文件代码{"compilerOptions":{"baseUrl":"./","paths":{"@/*":["src/*"],"@util/*":["src/utils/*"],"@assets/*
- 【web前端】Vue3 核心模块与样式管理:从理论到代码实现
JosieBook
#Java全栈前端vue3
文章目录一、Vue3核心模块架构解析1.编译器模块(Compiler)2.运行时模块(Runtime)3.响应式模块(Reactivity)4.组合式API(CompositionAPI)二、样式管理模块详解1.Scoped样式2.CSSModules3.样式穿透与全局样式三、完整页面代码实现1.项目结构2.代码实现`main.js``App.vue``components/Counter.vue
- 鸿蒙ArkCompiler实战:如何让应用性能飞起来
harmonyos
作为一名长期奋战在鸿蒙开发一线的工程师,ArkCompiler带给我的震撼不亚于第一次看到HarmonyOS的分布式能力。今天我想分享几个让应用性能真正"飞起来"的实战经验。为什么ArkCompiler如此特别ArkCompiler最让我惊艳的是它的AOT(Ahead-of-Time)编译能力。记得我们团队第一个鸿蒙应用上线时,用户反馈启动速度比Android版本快了近40%。这得益于ArkCom
- Docker Compose 报“no configuration file provided: not found”问题解决指南
CarlowZJ
dockereureka容器
目录一、确认配置文件路径1.1确保docker-compose.yml文件存在1.2使用-f参数指定配置文件路径二、检查当前工作目录2.1确保在正确的目录下运行命令2.2使用ls命令确认文件存在三、检查DockerCompose版本3.1确保DockerCompose已正确安装3.2更新DockerCompose四、检查文件名和权限4.1确保文件名正确4.2检查文件权限五、检查DockerDesk
- android 图片背景毛玻璃效果实现
stevenzqzq
android基础android
图片背景毛玻璃效果实现1依赖//Glideimplementation("com.github.bumptech.glide:glide:4.16.0")kapt("com.github.bumptech.glide:compiler:4.16.0")implementation("jp.wasabeef:glide-transformations:4.3.0")2布局//...内容布局3Main
- BEV-Fusion环境配置(RTX4090)
BEV-Fusion环境配置(RTX4090)SystemVersionSystemVer.Ubuntu22.04.5LTSKernelVer.6.8.0-57-genericGPU:RTX4090CudaVersionin/usr/local/cudanvcc:NVIDIA(R)CudacompilerdriverCopyright(c)2005-2022NVIDIACorporationBui
- 编译问题形似undefined reference to `_TIFFxxxx@LIBTIFF_4.0‘解决方法
兔子的倔强
ubuntuc++
问题描述在执行make命令编译c++项目的时候,build成功,但是后面出现了下面的报错:makeConsolidatecompilergenerateddependenciesoftargetcalibrate[50%]BuildingCXXobjectCMakeFiles/calibrate.dir/calibrate.cpp.o[100%]LinkingCXXexecutablecalibr
- ArkCompiler在鸿蒙应用开发中的性能优化实践
harmonyos
作为HarmonyOS的核心编译工具链,ArkCompiler通过AOT/JIT混合编译模式显著提升应用性能。笔者在开发电商类应用时发现,合理利用ArkCompiler特性可使冷启动速度提升40%。关键点在于:字节码优化:通过arkc--opt-level=2启用O2优化,消除冗余指令;类型推断加速:使用@CompileMode(Fast)注解高频调用的Java方法;内存管理:配合ArkTS的@S
- ROS error: ‘nullptr’ was not declared in this scope
青青草原的玫玫小羊
笔记UbuntuPythoncmakelinux
ROS中,编译cv_bridge时,error:‘nullptr’wasnotdeclaredinthisscope在cv_birdge的cmakelists.txt中添加:include(CheckCXXCompilerFlag)CHECK_CXX_COMPILER_FLAG("-std=c++11"COMPILER_SUPPORTS_CXX11)CHECK_CXX_COMPILER_FLAG(
- 解决Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile
weixin_ab
报错javamaven-compiler
解决Failedtoexecutegoalorg.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile首先检查安装的jdk版本1.8,cmd:java-version项目需求的jdk版本1.8,UTF-8UTF-81.8org.apache.maven.pluginsmaven-compiler-plugin3.6.01.81.8继续报错
- 2020-11-23 安装kaldi提示CUDA版本与实际安装版本不符
CBCU
UbuntuKaldiCUDA语音识别linux深度学习
安装kaldi提示CUDA版本与实际安装版本不符在kaldi的src文件夹下运行./configure--shared提示:***configurefailed:CUDA9_1doesnotsupportg++(g++-7).Youneedg++<7.0.***而我在实际安装的版本是10_1:nvcc:NVIDIA(R)CudacompilerdriverCopyright(c)2005-2019
- CMakeLists.txt实战指南:从入门到被CMake折磨的那些年(超详细)
digitalpath
其他
文章目录一、你的第一个CMakeLists.txt(真·5分钟速成版)二、CMakeLists.txt的七种武器(必杀技合集)1.头文件大作战2.库文件三连击3.编译选项黑科技三、大型项目生存指南(保命技巧)1.模块化开发(拒绝屎山代码!)2.安装配置(打包带走)四、报错急救包(亲测有效)1."NoCMAKE_CXX_COMPILERcouldbefound"2."target[...]inclu
- gitlab设置
zhanghaisong_2015
gitlab
错误提示:remote:HTTPBasic:Accessdenied.Theprovidedpasswordortokenisincorrectoryouraccounthas2FAenabledandyoumustuseapersonalaccesstokeninsteadofapassword.Seehttp://gitlab.com/help/topics/git/troubleshooti
- SOEM vscode 交叉编译
m0_55576290
电机嵌入式vscodeide编辑器
GithubSOEM#arm-linux-gnueabihf.cmake#CMaketoolchainfileforARMLinuxcross-compilation#Setthetargetsystemset(CMAKE_SYSTEM_NAMELinux)set(CMAKE_SYSTEM_PROCESSORarm)#Specifythecrosscompilerset(CMAKE_C_COMPI
- 只是修改了业务代码,并没有相关注解,再次build时如何不使用kapt
yzpyzp
androidgradle
只是修改了业务代码,并没有相关注解,再次build时可以不用使用kapt吧?此时如何关闭kapt,因为kaptDebugKotlin这个task太耗时了可以通过以下方式实现禁用:一、正确配置方式全局禁用kapt(测了,useBuildCache没有用,艹)在模块的build.gradle中使用kapt.configure闭包:android{kotlinOptions{freeCompilerAr
- 使用 kapt 注解生成依赖注入代码
shuizhizhiyin
kapt注解Android
一、使用kapt注解来生成Dagger2依赖注入代码Dagger2是一个强大的依赖注入框架。1.添加依赖首先,在你的build.gradle文件中添加Dagger2和kapt依赖:dependencies{//...其他依赖implementation("com.google.dagger:dagger:2.46.1")kapt("com.google.dagger:dagger-compiler
- maven 本地打包
CC大煊
mavenjava
文章目录1.简介Maven和POM的基本概念本地打包的意义和场景2.MavenPOM文件结构POM文件的基本结构重要的POM元素介绍3.Maven本地打包的关键配置spring-boot-maven-pluginmaven-surefire-plugin如何配置和使用MavenSurefire插件skip标签maven-compiler-plugin如何配置和使用MavenCompiler插件so
- IDEA项目使用Maven插件打包jar
你好,今天
日常工作IDEAMaven插件打包Jar
项目打包为jar目的:方便项目部署到其他操作系统。前提:新建的项目为maven项目1.pom.xml文件中配置maven插件org.springframework.bootspring-boot-maven-pluginorg.apache.maven.pluginsmaven-compiler-plugin1.81.8使用maven中的clean操作clean指令执行结束,执行package关于
- UWB:IEEE 802.15.4 几个容易搞混的概念和名词:PRF,高带宽,499.2MHz,2ns; HRP,LRP;PSR,高带宽的优点和限制条件
Ankie(资深技术项目经理)
UWB原理和实操无线网络技术UWB超宽带PRFHRPBPRFPSR
UWB:几个容易搞混的概念和名词FundamentalsofTimeandFrequency(nist.gov)Timeandfrequencystandardssupplythreebasictypesofinformation:time-of-day,timeinterval,andfrequency.time-of-dayTime-of-dayinformationisprovidedinh
- pycharm中提示C++ compiler not found -- please install a compiler
1.最近用pycharm编译一个开源库,编译的依赖c++compiler2.单单使用pycharm编译,编译器报错C++compilernotfound–pleaseinstallacompiler3.需要在配置环境中引入对应库4.从新编译后没有提示:C++compilernotfound–pleaseinstallacompiler错误。
- 编译器基础概念
喜欢打篮球的普通人
传统编译器c++
文章目录编译器与解释器解释器vs编译器对比编译方式Just-In-Time(JIT)编译Ahead-Of-Time(AOT)编译JIT(即时编译)与AOT(提前编译)对比什么时候用到JIT什么时候用到AOT?Pass和IRPass传统编译器编译器的发展历史(HistoryofCompiler)GCC编译过程与原理(GCCProcessandPrinciple)LLVM/Clang编译过程与原理(L
- 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