java jedis_Java中使用jedis操作redis

本文介绍了如何使用Jedis库封装Redis操作,包括连接Redis、设置与获取数据、使用流水线模式提高写入性能。同时展示了在Spring MVC中整合Redis的步骤,包括添加依赖、配置属性、创建Spring BeanHolder和RedisUtils工具类,以简化Redis操作。
摘要由CSDN通过智能技术生成

jedis封装了redis原有的操作命令,使用起来很简单。

只需要添加依赖即可操作:

redis.clients

jedis

${jedis.version}

Java中的代码:

Jedis jedis = newJedis(LOCALHOST,PORT);//设置地址和端口

jedis.auth(PASSWORD);//如果redis服务器配置了需要密码,此处必须设置//存储集合到redis,并取出

jedis.lpush("mylist","admin","tom","jack");

System.out.print(jedis.lrange("mylist",0,-1));

客户端插入后,获取后打印输出

6fc3af1652a6ff933f09c745172cfa7e.png

redis服务器端查看:

ed31073876fbe8f3eea070c94ac180ac.png

使用流水线Pipeline模式测试向redis服务器每秒可写多少数据

/**

* 测试redis每秒可写入数据*/@Testpublic voidtest01()

{//参数1:主机地址,参数2:端口号

Jedis jedis = new Jedis(LOCALHOST,PORT);//连接redis//如果服务器的配置文件设置了需要密码验证

jedis.auth(PASSWORD);//输入密码验证//开启流水线

Pipeline pipeline =jedis.pipelined();int i = 0;try{long start =System.currentTimeMillis();while (true)

{long end =System.currentTimeMillis();//当大于等于1秒时,结束操作

if(end-start>=1000){break;

}

i++;

pipeline.set("test"+i,i+"");//使用流水线方式向redis数据库插入数据//jedis.set("test"+i,i+"");//向redis数据库插入数据

}

}finally{

jedis.close();//关闭连接

}//打印1秒内对redis操作的次数

System.out.println("redis每秒操作"+i+"次");

}

402f4b421c9a5e91a5840ab2c36d36fc.png

可以看到,每秒可写142611次,redis服务器查看,数据插入成功。

9680c867169ddeee21144108a8d7d0dc.png

下面在springMVC中整合redis,使用redisUtils工具类操作redis更简单

第一步:添加依赖:

redis.clients

jedis

${jedis.version}

第二步:添加属性文件:redis.properties

redis.host =xxx

redis.port= 6379redis.password=xxx

redis.timeout= 5000redis.maxTotal= 100redis.maxIdle= 20redis.minIdle= 5

第三步:添加xml配置文件 spring-redis.xml(在springmvc中集成的)

第四步:添加SpringBeanHolder类加载bean

import org.apache.poi.ss.formula.functions.T;

import org.springframework.beans.BeansException;

import org.springframework.beans.factory.BeanInitializationException;

import org.springframework.beans.factory.InitializingBean;

import org.springframework.context.ApplicationContext;

import org.springframework.context.ApplicationContextAware;/**

* @Author:ShaoJiang

* @description:

* @Date: created in 下午10:49 2019/2/12

* @Modified By:*/

public classSpringBeanHolder implements ApplicationContextAware {private staticApplicationContext ac;

@Overridepublic voidsetApplicationContext(ApplicationContext applicationContext) throws BeansException {

ac=applicationContext;

}public staticObject getBean(String beanName)

{returnac.getBean(beanName);

}public static T getBean(Classclazz)

{returnac.getBean(clazz);

}

}

第五步:添加redisUtils工具类:

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;/**

* @Author:ShaoJiang

* @description:

* @Date: created in 下午10:48 2019/2/12

* @Modified By:*/

public classRedisUtils {private static JedisPool jedisPool = null;private static ApplicationContext context = null;static{//加载xml文件

context = new ClassPathXmlApplicationContext("classpath:spring-redis.xml");//获取jedis连接池

jedisPool = (JedisPool)SpringBeanHolder.getBean("jedisPool");

}public static void set(String key ,String value)

{// Jedis jedis = null;try{if(jedis==null){

jedis=jedisPool.getResource();

jedis.set(key,value);

}

}catch(Exception e) {

e.printStackTrace();

}finally{

jedis.close();

}

}public static String get(String key)

{

Jedis jedis= null;try{if(jedis==null){

jedis=jedisPool.getResource();return jedis.get(key);

}

}catch(Exception e) {

e.printStackTrace();

}finally{

jedis.close();

}return null;

}

}

最后测试:

/**

* 使用redisUtils工具类操作redis*/@Testpublic voidtest03()

{

RedisUtils.set("name","tom");

System.out.println(RedisUtils.get("name"));

}

客户端测试类,插入数据后,获取输出。

4dc08bdcd7234d8b458b75666f07cb4b.png

redis服务器查看:

d28e11268c7f45ba82fa13b5107635a5.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值