Forcebot没有提供直接操作线上jimdb接口,压测人员需要写代码调用,本工具类封装jimdb调用接口,统一调用方式,减少重复工作,提升效率。项目中经常用到非关系型数据库,就是jimdb了,其实jimdb就是京东封装了redis,起名叫jimdb,所以操作命令与redis大部分一致, 只要你会redis,就会用jimdb.
1、设计图
2、工具类中的方法
① 初始化jimdb对象方法
② 返回jimdb对象方法,可以对jimdb对象直接操作
③ 提供生产者消费者写jimdb方式,大并发写jimdb方式使用
3、工具类调用
第一步: 导入依赖的jar
第二步:调用工具类中提供的接口
方法①:调用接口直接对jimdb进行写操作,不使用内部队列进行缓存
import java.util.concurrent.TimeUnit;
import com.jd.ptest.jimdbInterface.JimdbHelper;
import com.jd.ptest.jimdbInterface.utils.JimiConfig;
import com.jd.ptest.jimdbInterface.utils.RedisDataObj;
//此处代码,进程开始时候调用一次 JimiConfig.expireTime = 30;/ /设置key的超时时间 JimdbHelper.initJimClient("jim://2809907022807591111/5");//初始化jimdb |
---|
//向jimdb中写入数据 RedisDataObj obj = new RedisDataObj("key1", "hello");//封装写入redis数据,这种类型是key->value方式 //JimdbHelper.getJimClient()返回类型是com.jd.jim.cli.Cluster,可以直接操作redis,获取redis中的数据 JimdbHelper.getJimClient().hGet("hkey", "field1");//获取key,field ->value这种类型中的value |
---|
//此处代码在进程关闭时候调用一次 JimdbHelper.close(); |
---|
方法①:调用接口对jimdb进行写操作,使用内部队列进行缓存,采用生产消费模式对jimdb进行写操作
//此处代码,进程开始时候调用一次 JimiConfig.expireTime = 30;/ /设置key的超时时间 JimdbHelper.initJimClientQueue("jim://2809907022807591111/5");//注意,此处初始化jimdb方法和不使用缓存队列不同 |
---|
//向jimdb中写入数据 RedisDataObj obj = new RedisDataObj("key2", "hello");//封装写入redis数据,这种类型是key->value方式 //读操作,都是直接操作jimdb,和方法①中相同 //JimdbHelper.getJimClient()返回类型是com.jd.jim.cli.Cluster,可以直接操作redis,获取redis中的数据 JimdbHelper.getJimClient().hGet("hkey", "field2");//获取key,field ->value这种类型中的value |
---|
//此处代码在进程关闭时候调用一次 JimdbHelper.clearBeforeClose(); |
---|
4、代码下载
jimdb接入指南
1、http://jimdb.jd.com 先到jimdb网站上申请新空间,申请后会展示审核中,要口头通知jimdb运营人员审核。
JIMDB值班群:
erp: jimdb-support1 13720095174
erp: jimdb-support
申请成功后就可以接入jimdb了。
2、添加依赖
<dependency> <groupId>com.jd.jim.cli</groupId> <artifactId>jim-cli-jedis</artifactId> <version>1.4.5-SNAPSHOT</version> </dependency> <dependency> <groupId>com.jd.jim.cli</groupId> <artifactId>jim-cli-api</artifactId> <version>1.4.5-SNAPSHOT</version> </dependency>
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="jimClient" class="com.jd.jim.cli.ReloadableJimClientFactoryBean"> <property name="jimUrl" value="${jimdb.url}" /> </bean> </beans>