【redis】——jedis简单了解和使用
来源:互联网 发布:sql 字符串中有单引号 编辑:程序博客网 时间:2024/06/16 15:39
使用Jedis提供的Java API对Redis进行操作,是Redis官方推崇的方式;并且使用Jedis提供的对Redis的支持是最为灵活全面的;
首先需要在项目中添加对jedis的jar包。在使用时单机版和集群版有区别,分别看一下在项目中的使用。
单机版
创建单实例jedis对象连接redis服务
// 单实例连接redis @Test public voidtestJedisSingle() { Jedis jedis = new Jedis("192.168.190.3", 6379);//实例化一个jedis jedis.set("name", "zhangsan");//存储 String name = jedis.get("name");//获取 System.out.println(name);//输出 }
单实例连接redis不能对redis连接进行共享,可以使用连接池对redis连接进行共享,提高资源利用率。
@Test public void testPool() { JedisPoolConfig config = newJedisPoolConfig(); //最大连接数 config.setMaxTotal(10); //最大连接空闲数 config.setMaxIdle(2); JedisPool pool = newJedisPool(config, "192.168.190.3", 6379);//创建连接池 Jedis jedis = null; try { jedis =pool.getResource();//通过连接池获取redis实例 jedis.set("name", "zhangsan");//赋值 String name = jedis.get("name");//取值 System.out.println(name); }catch(Exception ex){ ex.printStackTrace(); }finally{ if(jedis != null){ //关闭连接 jedis.close(); } } }
集群版
使用连接池
// 连接redis集群 @Test public voidtestJedisCluster() { JedisPoolConfig config = newJedisPoolConfig(); // 最大连接数 config.setMaxTotal(10); // 最大连接空闲数 config.setMaxIdle(2); //集群结点 Set<HostAndPort>jedisClusterNode = new HashSet<HostAndPort>(); jedisClusterNode.add(new HostAndPort("192.168.190.3", 7001)); jedisClusterNode.add(new HostAndPort("192.168. 190.3", 7002)); jedisClusterNode.add(new HostAndPort("192.168. 190.3", 7003)); jedisClusterNode.add(new HostAndPort("192.168. 190.3", 7004)); jedisClusterNode.add(new HostAndPort("192.168. 190.3", 7005)); jedisClusterNode.add(new HostAndPort("192.168.190.3", 7006)); JedisCluster jc = newJedisCluster(jedisClusterNode, config); JedisCluster jcd = newJedisCluster(jedisClusterNode); jcd.set("name", "zhangsan"); String value = jcd.get("name"); System.out.println(value); }
和spring整合:
以上单机版和集群版都使用到了连接池,连接池的属性应该是灵活可配的可以和spring的配置文件进行整 合。可以独立建立一个applicationContext-jedis.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"> <!-- 连接池配置 --> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <!-- 最大连接数 --> <property name="maxTotal" value="30" /> <!-- 最大空闲连接数 --> <property name="maxIdle" value="10" /> <!-- 每次释放连接的最大数目 --> <property name="numTestsPerEvictionRun" value="1024" /> <!-- 释放连接的扫描间隔(毫秒) --> <property name="timeBetweenEvictionRunsMillis" value="30000" /> <!-- 连接最小空闲时间 --> <property name="minEvictableIdleTimeMillis" value="1800000" /> <!-- 连接空闲多久后释放, 当空闲时间>该值且空闲连接>最大空闲连接数时直接释放 --> <property name="softMinEvictableIdleTimeMillis" value="10000" /> <!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 --> <property name="maxWaitMillis" value="1500" /> <!-- 在获取连接的时候检查有效性, 默认false --> <property name="testOnBorrow" value="true" /> <!-- 在空闲时检查有效性, 默认false --> <property name="testWhileIdle" value="true" /> <!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true --> <property name="blockWhenExhausted" value="false" /> </bean> <!-- jedis客户端单机版 --> <!-- <bean id="redisClient" class="redis.clients.jedis.JedisPool"> <constructor-arg name="host" value="192.168.25.153"></constructor-arg> <constructor-arg name="port" value="6379"></constructor-arg> <constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg> </bean> <bean id="jedisClient" class="com.taotao.rest.dao.impl.JedisClientSingle"/> --> <!-- jedis集群版配置 --> <bean id="redisClient" class="redis.clients.jedis.JedisCluster"> <constructor-arg name="nodes"> <set> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.25.153"></constructor-arg> <constructor-arg name="port" value="7001"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.25.153"></constructor-arg> <constructor-arg name="port" value="7002"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.25.153"></constructor-arg> <constructor-arg name="port" value="7003"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.25.153"></constructor-arg> <constructor-arg name="port" value="7004"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.25.153"></constructor-arg> <constructor-arg name="port" value="7005"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.25.153"></constructor-arg> <constructor-arg name="port" value="7006"></constructor-arg> </bean> </set> </constructor-arg> <constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg> </bean> <bean id="jedisClientCluster" class="com.taotao.rest.dao.impl.JedisClientCluster"></bean></beans>
以上配置文件中添加了redis的连接池,同时配置了单机版和集群版的bean,当然单机版和集群版是不能同时存在的,分别测试好了以后在开放时可以使用单机版的,单机版redis可以使用可视化功能查看其中的数据,在发布时切换到集群版。
/** * 单机版测试 * <p>Title: testSpringJedisSingle</p> * <p>Description: </p> */ @Test public void testSpringJedisSingle() { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml"); JedisPool pool = (JedisPool) applicationContext.getBean("redisClient"); Jedis jedis = pool.getResource(); jedis.set("key0", "jedis test"); String string = jedis.get("key0"); System.out.println(string); jedis.close(); pool.close(); } /** * 集群版测试 * <p>Title: testSpringJedisCluster</p> * <p>Description: </p> */ @Test public void testSpringJedisCluster() { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml"); JedisCluster jedisCluster = (JedisCluster) applicationContext.getBean("redisClient"); cluster.set("key1", "1000"); String string = jedisCluster.get("key1"); System.out.println(string); jedisCluster.close(); }
小结
实例中只使用了jedis的set方法,其他方法的使用可以查询redis的api。在实际的业务中使用时jedis的使用不能影响正常的业务逻辑。
0 0
- 【redis】——jedis简单了解和使用
- redis详解——简单介绍和linux下的安装和jedis使用(一)
- redis简单了解和使用
- Redis --- Jedis 使用简单示例
- Redis客户端——Jedis使用
- Redis学习02——Jedis使用
- redis客户端jedis的简单使用
- 转载redis之jedis简单使用
- Java中使用Jedis操作Redis—Redis快速入门
- Redis+Jedis简单应用
- Redis jedis 简单例子
- Redis的学习—jedis使用_(三)
- 【Redis】深入浅出Redis(三)——在项目中使用Jedis对Redis操作
- Redis学习10之Jedis连接redis和使用
- redis jedis使用总结
- redis jedis使用总结
- redis jredis jedis 使用
- 使用Jedis操作redis
- Elasticsearch 分布式原理
- css基础
- 神经网络与深度学习(第一章)(四)
- tomcat结合nginx使用小结
- SEO基础
- 【redis】——jedis简单了解和使用
- C语言点餐系统
- 杂项
- 动态类型的语言支持--invokedynamic
- 《JS高程(3)》DOM节点层次Node类型-第10章笔记(11)
- git push项目到github
- OC第一个程序的解释
- checkstyle_IDEA xml 配置详解
- linux shell 条件判断