- Python爬虫(2)正则表达式
DO_Lee
python爬虫正则表达式
re包1.函数1)re.match(pattern,string,flags=0)如果string开头的零个或多个字符与正则表达式pattern匹配,则返回相应的Match。如果字符串与模式不匹配则返回None;请注意这与零长度匹配是不同的。表达式的行为可通过指定flags值来修改。importrestr_1='abcd'str_2='abcdabcd'str_3='dcab'res_1=re.m
- 文本操作基础知识:正则表达式
时之彼岸Φ
基础知识正则表达式
目录摘要:一、语法二、匹配模式pattern1、普通字符[]2、限定字符3、定位字符4、运算字符()三、修饰符flags四、各语言的正则使用1、Python的re参考资料:摘要:常用匹配:[A-C]、[^A-C]、\w、\d、\n、\r、\t、*、+、?、{n,m}。python的re.findall函数一、语法/pattern/flagspattern:表示匹配模式,需要匹配的具体内容。flag
- 扑克强化学习:DouZero/douzero/dmc/dmc.py (train)
强化学习曾小健
python人工智能深度学习
deftrain(flags):"""Thisisthemainfuntionfortraining.Itwillfirstinitilizeeverything,suchasbuffers,optimizers,etc.Thenitwillstartsubprocessesasactors.Then,itwillcalllearningfunctionwithmultiplethreads.""
- 在线正则网站
harmful_sheep
网站java
地址:https://jex.im/regulex/#!flags=&re=Github地址:https://github.com/CJex/regulex[1]https://jex.im/regulex/#!flags=&re=:https://jex.im/regulex/#!flags=&re=[2]https://github.com/CJex/regulex:https://githu
- 使用Hugging Face Text Embeddings Inference进行文本嵌入推理
dgay_hua
python
在自然语言处理中,文本嵌入是一个重要的技术,它将文本转换为可以由机器学习算法处理的数字向量。在这篇文章中,我们将探讨如何使用HuggingFace的TextEmbeddingsInference(TEI)工具包来部署和服务开源文本嵌入和序列分类模型。TEI支持高性能提取,包括常用的嵌入模型如FlagEmbedding、Ember、GTE和E5。技术背景介绍文本嵌入在现代NLP任务中起着关键作用,它
- 实现红外触感按键扫描函数
平凡灵感码头
stm32项目实现stm32
函数目标检测GPIOC第8号引脚的电平状态(假设低电平触发),实现按键消抖和状态锁定,返回键值5表示按键被按下,未按下时返回0xff。代码逐行解析1.变量定义u8ir_value=0xff;//默认返回未按下状态(0xff)staticu8ir_flag=1;//状态锁存标志,初始为1(允许检测)ir_value:存储按键返回值,初始化0xff表示未按下。ir_flag:静态变量(保持状态跨函数调
- qt mysql 执行sql_Qt数据库- 执行SQL语句
weixin_39724266
qtmysql执行sql
QtVersion5.14.0QSqlQuery类提供执行SQL语句的接口,并且能够访问执行结果数据集。执行一次查询想要执行SQL语句,只需要创建一个QSqlQuery对象,然后调用它的exec函数,如下代码。(这里构造QSqlQuery对象时没有指定数据库链接名称)QSqlQueryquery;boolflag=query.exec("SELECTname,salaryFROMemployeeW
- 软件调试之陷阱标志
maomao171314
软件调试陷阱标志软件调试
陷阱标志IA-32处理器支持的调试陷阱标志共有3种。1.8086支持的单步执行标志(EFLAGS的TF位)。2.386引入的任务状态陷阱标志(TSS的T标志)。3.奔腾Pro引入的分支到分支单步执行标志(DebugCtl寄存器种的BTF标志)。1.单步执行标志标志寄存器(FLAGS)的TF(TrapFlag)位。当TF为1时,CPU每执行完一条指令便会产生一个调试异常(#DB),中断到调试异常处理
- buuctf-Quoted-printable
qis_qis
crypto
解压打开:=E9=82=A3=E4=BD=A0=E4=B9=9F=E5=BE=88=E6=A3=92=E5=93=A6刚开始看到这一个字符串,误以为是什么编码特有的格式直到后面发现标题即提示,即Quoted-printable也是一种编码:得到flag:那你也很棒哦
- CMake strings替换字符
小米人er
我的博客cmakemakefile
makefile里的subset是什么语法,参考使用示例CFLAGS+=$(subst",$(CONFIG_LV_OPTLEVEL))好的,用户现在问的是Makefile中的subst语法,并给出了一个示例:CFLAGS+=$(subst",$(CONFIG_LV_OPTLEVEL))。我需要先理解subst函数的作用以及用户提供的示例的具体用途。首先,subst是Makefile中的一个文本替换
- php 读写文件 file_put_contents() 与 file_get_contents() 函数用法
whatday
file_put_contentsfile_put_contents()函数用于把字符串写入文件,成功返回写入到文件内数据的字节数,失败则返回FALSE。语法:intfile_put_contents(stringfilename,stringdata[,intflags[,resourcecontext]])参数说明:参数说明filename要写入数据的文件名data要写入的数据。类型可以是st
- ctf网络安全大赛官网赛题 ctf网络安全大赛规则
网络安全-老纪
web安全安全网络
CTF(CaptureTheFlag,夺旗赛)起源于1996年DEFCON全球黑客大会,是网络安全爱好者之间的竞技游戏。CTF竞赛模式具体分为以下三类:一、解题模式(Jeopardy)在解题模式CTF赛制中,参赛队伍可以通过互联网或者现场网络参与,这种模式的CTF竞赛与ACM编程竞赛、信息学奥赛比较类似,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛。题目主要包含逆向、漏洞挖掘与
- ubuntu安装编译brpc
周子青
//安装git、g++、make、libssl-dev$sudoapt-getinstallgitg++makelibssl-dev//安装gflags、protobuf、leveldb$sudoapt-getinstallrealpathlibgflags-devlibprotobuf-devlibprotoc-devprotobuf-compilerlibleveldb-dev//安裝goog
- python jieba+wordcloud
风夏夜中
pythonjiebawordcloud
pipinstalljiebapipinstallwordcloud#!-*-coding:utf-8-*-importjieba.possegaspsegstop_words=["给","被","的","最"]text="食堂的饭真的是很好吃呀,最喜欢食堂了"word_dict={}#分词并统计词频,flag表示词性forword,flaginpseg.cut(text):ifwordnotin
- 如何在CMake中设置Clang的编译选项 ,比如-fno-inline ,是编译时不进行内联
jiasting
androidandroid
在CMake中设置Clang编译选项要在CMake中设置Clang的编译选项,如-fno-inline,可以按照以下步骤进行:指定编译器:设置CMAKE_C_COMPILER和CMAKE_CXX_COMPILER为Clang的绝对路径。设置编译标志:在CMakeLists.txt中,使用SET命令为CMAKE_C_FLAGS和CMAKE_CXX_FLAGS添加-fno-inline选项。
- 谷歌浏览器手动设置Cookie
不做大多数
个人学习
1、Chrome中访问地址chrome://flags2、搜索Partitionedcookies将设置项改为Enabled即可,3、重启浏览器,手动添加cookie将会保留,且不会标红
- CTF学习法则——寒假篇 新手赶快收藏吧!
网络安全技术分享
学习网络安全web安全php
CTF(CapturetheFlag)是网络安全领域中的一种比赛形式,涵盖了漏洞利用、逆向工程、加密解密、编码解码等多方面的技术,参与者通过解决难题(称为“Flag”)获得积分。对于想要在寒假期间提升CTF技能的同学们,以下是一些有效的学习法则,可以帮助你高效地进行学习和提升:1.合理规划学习时间寒假时间有限,建议制定合理的学习计划:每天固定时间学习:保持稳定的学习节奏,避免临时抱佛脚。分阶段学习
- QT的OpenGL渲染窗QOpenGLWidget Class
无水先生
python-pygame3D图形渲染和OpenGL编程系统架构数据库
Qt-QOpenGLWidget(class)(runebook.dev)一、说明QOpenGLWidget类是用于渲染OpenGL图形的小部件。从Qt5.4就开始退出,它对于OpenGL有专门的配合设计。二、QOpenGLWidget类的成员2.1Public类函数QOpenGLWidget(QWidget*parent=nullptr,Qt::WindowFlagsf=Qt::WindowFl
- PHP2(WEB)
Sweet_vinegar
CTFCTF安全WEB攻防世界PHP
##解题思路打开页面什么线索都没有,目录扫描只是扫出来一个index.php,而源代码没有东西,且/robots.txt是不允许访问的于是一番查询后发现,有个index.phps的文件路径,里头写着一段php的逻辑,对url的id参数传参,对内容admin进行了解密才能得到flag,但信息原先就会被加密然后再解密,所以admin需要加密两次否则如下被禁止访问但在用burpsuite的编码器进行了二
- ctfshow-源码泄露
莫思竹
CTFshow——VIP限免算法数据结构web安全
题目来源:ctf.show本题提示:开发注释未及时删除题目页面为下图所示。结合本题题目和提示,可以通过查看页面源代码来找到flag。ctfshow{fc5010f0-68b3-4905-933a-c49c4d7b4388}
- 小乔的数字查询
背刺你未遗憾
算法c++数据结构
不太好复制原谅我直接截图代码示例:#includeusingnamespacestd;intmain(){intn,q;cin>>n>>q;inta[30005],x,y;for(inti=1;i>a[i];}for(inti=1;i>x>>y;intcnt=0;boolflag=false;for(intj=1;j<=n;j++){if(a[j]==x){cnt++;}if(cnt==y){co
- 【网络安全】从零开始的CTF生活
Hacker_Nightrain
web安全生活安全
1、CTF是什么?CTF(CaptureTheFlag,夺旗赛)起源于1996年DEFCON全球大会,是网络安全爱好者之间的竞技游戏。2、比赛怎么打?1、解题模式:与ACM编程竞赛、信息学奥赛类似,以解决网络安全技术挑战题目的分值和时间来排名。题目主要包含逆向、漏洞挖掘与利用、Web渗透、密码、取证、隐写、安全编程等类别2、攻防模式(Attack-Defense):参赛队伍在网络空间互相进行攻击和
- 命令执行绕过方式总结
G0t1t
web安全学习
目录命令执行绕过方式总结命令分隔符花括号的用法黑名单绕过拼接绕过编码绕过单引号和双引号绕过反斜杠绕过长度限制内联执行通配符反弹shell(有点不懂先留个坑)linux中查看文件内容的工具命令执行绕过方式总结空格过滤linux{cat,flag.txt}cat${IFS}flag.txtcat$IFS$9flag.txtcatflag.txtkg=$'\x20flag.txt'&&cat$kg(\x
- GD32或STM32:DMA循环模式与普通模式(串口IDLE)
唔好理总之好犀利
stm32嵌入式硬件单片机
USART+DMA+循环队列接收不定长数据-CSDN博客STM32DMA循环模式DMA_Mode_Circular详解-CSDN博客推荐以上两个链接。Normal(普通)模式的DMA+串口IDLE中断,流程如下:1、初始化时:开启串口IDLE中断;dma_circulation_disable,失能DMA的循环;2、在串口IDLE中断里面:(1)清除idle的flag;dma_channel_di
- 【pta】1005 继续(3n+1)猜想
Liu_Meihao
算法
题目1005继续(3n+1)猜想思路一开始审错题了,如果不是偶数就要先乘3加一再减半。本题用数组a存储输入的数,用数组pan表示是否为关键数。代码#include#include#includeusingnamespacestd;intpan[10000];boolcmp(inta,intb){returna>b;}intmain(){intk,n;intflag=0;cin>>k;vectora
- 前端必备:正则表达式入门指南与高频场景实战
禅意码农
js正则表达式javascriptnode.js
正则表达式是处理文本的瑞士军刀,但对于新手来说可能有些复杂。本文通过通俗易懂的讲解和实用案例,带你快速上手!一、正则表达式基础组成1.修饰符(Flags)修饰符放在正则表达式末尾(如/pattern/igm),用于控制匹配模式:修饰符名称作用iignoreCase忽略大小写(如匹配"A"和"a")gglobal全局匹配(匹配所有结果,而非第一个)mmultiline多行模式(允许^和$匹配行首行尾
- Chrome Edge 开启多线程下载
安泽1314
chromeedge前端
开启步骤Chrome浏览器地址栏输入并回车:chrome://flags/#enable-parallel-downloadingEdge浏览器(Chromium内核)地址栏输入并回车:edge://flags/#enable-parallel-downloading将默认的Default改成Enabled然后重启即可
- RootersCTF2019 I ♥ Flask
尸者狗
#buuctfpython安全漏洞安全
知识点url参数爆破、ssti信息收集看了别人的wp,才知道http参数这方面的信息收集这里使用arjun,当然也可以万能的burpsuitepython3arjun.py-uhttp:xxxxxxxxxxx.buuoj.cn/--get得到参数name改成/?name={{3*3}}利用和getflag获取当前目录下文件列表xxxxx.cn/?name={{config.__class__.__
- 138,【5】buuctf web [RootersCTF2019]I_<3_Flask
rzydal
flaskpython后端
进入靶场这段代码是利用Python的类继承和反射机制来尝试执行系统命令读取flag.txt文件内容''.__class__:空字符串对象调用__class__属性,得到str类,即字符串的类型。__class__.__base__:str类的__base__属性指向其基类,在Python中str是新式类,其基类是object。__base__.__subclasses__():object类的__
- hostapd移植与使用 undefined reference to `getenv@GLIBC_2.0‘ invalid/unknown driver nl80211
把你抓走
嵌入式开发linuxwifi
君正T31-hostapd移植与使用第一步下载libnel源码下载路径http://www.infradead.org/~tgr/libnl/第二步编译libnl源码mkdirlibnl_install//创建安装路径CFLAGS="-muclibc-O2"CPPFLAGS="-muclibc-O2"LDFLAGS="-muclibc-O2"./configure--host=mips-linux
- 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