- SpringBoot配置Java后端服务器
Dream-kid
javaspringbootspring
前言本文阅读提醒:读者需要了解spring框架知识MyBatis框架知识以及springBoot框架知识.其中涉及到:注册与配置拦截器,MyBatis数据处理,springWeb知识,spring注解标签等,springBoot异常统一处理以及springBoot配置服务器目录前言SpringBoot服务器搭建服务器与数据库链接SpringBoot统一异常处理拦截器注册与搭建编写拦截器注册拦截器服
- ️Rust 移动端开发体验
tooy0ng
rust开发语言androidiosxcode
在过去的几周里,我根据Xlog和Loagan的设计思路,使用Rust写了一个移动端的跨平台日志库EZLog。在我实现这个库的过程中,查阅了大量的问答和博客。因为这些开发者的分享,节省了我大量的时间。所以我把我的经历也分享出来。如果以下任何一个点你感兴趣,不要划走。当下(2022)Rust在移动端的开发体验如何没有Java/Kotlin代码,不使用AndroidStudio和Gradle,秒级编译并
- 代码随想录算法训练营_day08
kennyS_ss
代码随想录算法训练营算法python开发语言
{{day08}}Java中字符串和数组的差别1.定义和本质字符串(String)字符串在Java中是一个对象,是java.lang.String类的实例。字符串实际上是一个字符数组的封装,但提供了更多的方法和功能。字符串是不可变的(immutable),一旦创建就不能修改其内容。数组(Array)数组是一种用于存储多个相同类型元素的容器。数组是Java中的一种引用类型。数组可以存储基本数据类型(
- JavaScript正则
MY代码世间
**正则**-计算机科学的一个概念,用于检索匹配或替换符合规则的文本-语法-varexpression=/pattern/flags-pattern表示一个简单的或复杂的正则表达式-flags表示匹配模式,支持3个标志-g代表全局,而非发现第一个立即返回-i代表不区分大小写进行匹配-m代表多行匹配-创建一个正则的方法-varreg=/正则的语法/;这种属于字面量的创建方式-例:varreg=/Ab
- Rust基础
vo很懒
rust开发语言后端
Rust语法基础本文源自观看B站Rust编程语言入门教程记录下来的重点笔记视频链接:Rust编程语言入门教程(Rust语言/Rust权威指南配套)文章目录Rust语法基础第三章变量与可变性数据类型函数控制流第四章所有权所有权规则、内存与分配所有权与函数引用与借用第五章struct定义和实例化输出格式化struct方法方法调用的运算符关联函数impl块第六章枚举Option枚举Matchiflet第
- 每日一题:Leetcode-224 基本计算器
L.2626
Leetcode面试题算法
力扣题目解题思路java代码力扣题目:给你一个字符串表达式s,请你实现一个基本计算器来计算并返回它的值。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如eval()。示例1:输入:s="1+1"输出:2示例2:输入:s="2-1+2"输出:3示例3:输入:s="(1+(4+5+2)-3)+(6+8)"输出:23解题思路:算法原理:这道题使用两个栈,一个数字栈numStack存储数字,
- windows系统部署springboot项目及绑定域名
zybsjn
javaspringboot
我的原文:http://note.youdao.com/noteshare?id=c3ccea255affd2c5d79231d67fa29103&sub=187AEEEA5CF34531A2C23156088EDEF9一、配置java运行环境下载jdk。例如:jdk-10.0.2_windows-x64_bin.exe安装jdk.直接双击运行jdkexe可执行文件。按步骤安装即可。在安装过程中会
- 华为OD机试D卷C卷 - 字符串筛选排序(Java题解)
算法大师
华为odc语言java
题目描述输入一个由N个大小写字母组成的字符串按照ASCII码值从小到大进行排序查找字符串中第K个最小ASCII码值的字母(k>=1)输出该字母所在字符串中的位置索引(字符串的第一个位置索引为0)k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引如果有重复字母则输出字母的最小位置索引输入描述第一行输入一个由大小写字母组成的字符串第二行输入k,k必须大于0,k可以大于输入字符串的长
- Hive环境onTez
asd623444055
hivehadoopbigdata
一、准备工作1.上传新的tez,hive,安装包到/opt/software目录下tez-0.10.1-SNAPSHOT-minimal.tar.gztez-0.10.1-SNAPSHOT.tar.gzapache-hive-3.1.2-bin.tar.gzmysql-connector-java-5.1.48.jar2.删除原有的hive及tezcd/opt/module/rm-rftez/hi
- Java 代码 编译和执行过程
萧关逢候骑11
这篇文章讲述的很清楚,在此记录一下,为了以后复习使用。https://blog.csdn.net/mccand1234/article/details/52013918文章目录流程图Java源码编译机制类加载机制类执行机制实例流程图Java代码编译是由Java源码编译器来完成,Java代码编译流程图如下所示:Java字节码(class文件)的执行是由JVM执行引擎来完成,Java字节码的执行流程图
- java图片转pdf
一路向北North
Java日记javapdf开发语言
前言图片文件转pdf如何将图片转pdf引入依赖com.lowagieitext4.2.1com.itextpdfitextpdf5.5.13.3转换工具importcom.itextpdf.text.Document;importcom.itextpdf.text.Image;importcom.itextpdf.text.Rectangle;importcom.itextpdf.text.pdf
- JS 删除数组元素( 5种方法 )
余道各努力,千里自同风
javascript开发语言ecmascript
文章目录一、五种方法1.`splice()`方法-删除指定索引位置的元素2.`pop()`方法-删除并返回数组最后一个元素3.`shift()`方法-删除并返回数组第一个元素4.`delete`操作符-删除指定索引位置的元素(保留数组长度,但使该位置值为`undefined`)5.设置`length`属性-快速删除数组尾部之外的所有元素二、注意事项总结在JavaScript中,删除数组元素有以下几
- Javascript中的常用语句
djb328217
javascript开发语言ecmascript
1.选择结构语句--根据判断条件的执行结果【boolean值】,有选择性的执行某一部分代码\if语句:(1)if(判断){需要被执行的javascript代码}先执行判断,判断为true时执行"{}"(2)if判断{对的执行}esle{错的执行}先执行判断,判断为true时执行"{对的执行}"判断为false时执行"错误执行"【二选一】可以代替三元运算符4(3)if(判断1){判断1为true}e
- Java网络编程
吢禅
java网络开发语言
网络编程Java是Internet上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序。Java提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在Java的本机安装系统里,由JVM进行控。并且Java实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境。1.1软件架构C/S架构:全称为Client/Server结构,是指客户端和服务器结构,
- Java面向对象
吢禅
javajvm开发语言
类变量和类方法类变量什么是类变量类变量也叫静态变量/静态属性,是该类的所有对象共享的变量,任何一个本类的对象访问他时,取到的值都是相同的,同样任何本类的一个对象去修改它时修改的也是听一个变量如何定义类变量定义语法:------->访问修饰符static数据类型变量名;[推荐]static访问修饰符数据类型变量名;如何访问类变量类名.类变量名or对象名.类变量名推荐使用第一种packagestati
- Java反射机制详解
๑҉ 晴天
javajava开发语言
引言Java反射机制(Reflection)是Java语言中一个强大的工具,它允许程序在运行时检查和操作类的结构和行为。反射机制主要用于框架开发、调试工具、动态代理、以及需要在运行时动态操作对象的场景。本文将详细介绍Java反射机制的基本原理、使用方法、性能影响以及一些实际应用场景,并提供相关代码示例。什么是反射?反射指的是程序在运行时可以访问、检测和修改它自己的状态或行为。Java反射机制提供了
- java 23种设计模式
Lambert_lin0
java设计模式开发语言
作者备注:该文未全部完成,正在编辑完善中文字结构:第1章为类型第2章为概念第3章为概念和优缺点第4章为详细或demo第1章Java语言中常用的设计模式有23种,它们被分为三大类:1、创建型模式(CreationalPatterns)2、结构型模式(StructuralPatterns)3、行为型模式(BehavioralPatterns)第2章创建型模式(CreationalPatterns):1
- java中常用的5种设计模式
小巢人
java设计模式
背景Java的设计模式有20多种,但是真实业务场景下,我常用的就这5种,基本上能解决我大部分问题。常用的5种设计模式一、单例模式定义:这个类的实例在这个项目中只能有一个。代码://列子1@ComponentpublicclassCacheSupport{privatefinalCachecache=newCacheWORK_QUEUE=newLinkedBlockingQueuevoidsubmi
- Java面向对象编程——新手必看
_S_Q
后端服务Javajavapython开发语言
文章目录Java面向对象编程博客一、面向对象编程的四大基本原则二、示例程序:动物类继承与多态1.创建一个新的Java项目2.编写代码3.运行程序三、继承与多态的深度解析四、总结Java面向对象编程博客面向对象编程(OOP)是Java的核心概念之一,它通过封装、继承和多态来帮助开发者构建模块化和可维护的代码。本篇博客将通过示例程序、UML类图,以及使用IntelliJIDEA的实践,详细讲解Java
- Java的反射机制
吢禅
javaservlet开发语言
Java的反射机制反射(Reflection)的概念反射的出现背景Java程序中,所有的对象都有两种类型:编译时类型和运行时类型,而很多时候对象的编译时类型和运行时类型不一致。例如: Objectobj=newString("hello");某些变量或形参的类型在编译时是Object,但是程序需要调用该对象运行时类型的方法,该方法不是Object中的方法,那么怎么办呢?解决这个问题,有两种方案:方
- 基于Javaweb实现的家教服务平台设计与实现(源码+数据库+部署+文档+讲解视频等)
星辰学长
#Java精选毕设数据库springbootvue.jsuni-appjava小程序
文章目录1.前言2.系统演示录像3.论文参考4.代码运行展示图5.技术框架5.1SpringBoot技术介绍5.2Vue技术介绍6.可行性分析7.系统测试7.1系统测试的目的7.2系统功能测试8.数据库表设计9.代码参考10.数据库脚本11.找我做程序,有什么保障?12.联系我们1.前言博主介绍:✌博主多年开发实战经验,曾被CDN特邀博客之星、技术开发领域专家,全网拥有百万粉丝,主要从事与Java
- 使用Docker构建支持中文字体的Java镜像
DN金猿
dockerdockerjava文字方框
做停车场生成二维码时,在代码中用到在图片上添加文字或水印,文字在本地正常显示,到linux服务器就显示方框,由于我用的是docker部署的java项目,所以在linux服务器中安装了中文字体还是无效,因为项目是部署中docker容器里。Fontfont3=newFont("微软雅黑",Font.PLAIN,72);微软雅黑字体显示方框(方框部分是添加的文字)后来查了很多资料,发现都不行。因为我的D
- java jxl 写 excel_使用JXL读写Excel
黄海均
javajxl写excel
jxl读取excel代码:importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.io.InputStream;importjava.util.ArrayList;importjava.util.List;importjxl.Cell;importj
- java利用jxl导出excel_java使用jxl实现导出excel
许风倾秋
1、导入jar包net.sourceforge.jexcelapijxl2.62、上代码protectedvoidexportExcel(HttpServletResponseresponse,StringfileName,String[]Title,@SuppressWarnings("rawtypes")Listcontent){//以下开始输出到EXCELtry{//定义输出流,以便打开保存
- 初学JAVA必看
liyongjie
JAVAjava工作编程javadoc编译器文档
(1)类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:ThisIsAClassNamethisIsMethodOrFieldName若在定义中出现了常数初始化字符,则大写staticfinal基本类型标识符中的所有字母。这样便可标志出它们属于编译期的常数。Java包(Package)属于一种特殊情况:它
- java redis常见操作
liyongjie
RedisJAVAjavaredis开发语言
本文介绍java操作Redis的常见方法采用Jedis方法操作,需要引入jedisjar包,本例子引用的是:jedis-5.2.0-beta4.jarimportjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Set;importredis.cli
- java通过JDBC连接mysql、postgres、oracle数据库实现读写数据
liyongjie
JAVAMySQLpostgres数据库javamysql
通过JDBC连接mysql需要JDBC驱动程序包,本例子使用的是:mysql-connector-java-5.1.43-bin.jar通过JDBC连接postgres需要JDBC驱动程序包,本例子使用的是:postgresql-42.7.4.jar通过JDBC连接oracle需要JDBC驱动程序包,本例子使用的是:ojdbc6.jar/****/importjava.sql.Connection
- java利用JXL操作excel
liyongjie
JAVAjavaexcelpython
通过JXL操作ExcelJXL是韩国人所著,目前停止更新,只支持xls格式,即2007之前的版本importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.io.InputStream;importjava.net.
- 使用 Java 预定义类(学习 Java 编程语言 025)
xiang017
预定义类就是Java类库(或第三方库)中已经定义好的类。在Java中,没有类就无法做任何事情,然而,并不是所有的类都具有面向对象特征。例如,Math类和Date类。Date类的实例有一个状态,即特定的时间点。尽管在使用Date类时不必知道这一点,但时间使用距离一个固定时间点的毫秒数(可正可负)表示的,这个点就是所谓的纪元(epoch),它是UTC时间1970-01-0100:00:00。UTC是C
- @Autowired获取配置文件中被注入实例的两种方式
weixin_30719711
java
一、说明二、那么在JavaBean中如何通过@Autowired获取该实例呢?有两种方式:1.直接获取@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:applicationContext_test.xml")publicclassMyTest1{@AutowiredprivateHibernateTem
- 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