redis Java客户jedis的使用。

来源:互联网 发布:linux zip命令 密码 编辑:程序博客网 时间:2024/06/09 20:42

Redis 简介:

redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:字符串类型、散列类型、列表类型、集合类型、有序集合类型。

Redis主要应用场景如下:

1、缓存(数据查询、短连接、新闻内容、商品内容等等)(最多使用)

2、分布式集群架构中的session分离。

3、任务队列。(秒杀、抢购、12306等等)

4、应用排行榜。

5、网站访问统计。

6、数据过期处理(可以精确到毫秒)

-------由于本文重点介绍jedis的使用,redis安装不再介绍。---------

jedis的使用:

JAR包


1、jedis链接单机版。

    // 单实例连接redis    @Test    public void testJedisSingle() {       Jedisjedis = new Jedis("192.168.101.3", 6379);       jedis.set("name", "bar");       Stringname = jedis.get("name");       System.out.println(name);       jedis.close();    }

2、使用连接池链接。

@Testpublic void pool() {JedisPoolConfig config = new JedisPoolConfig();//最大连接数config.setMaxTotal(30);//最大连接空闲数config.setMaxIdle(2);JedisPool pool = new JedisPool(config, "192.168.101.3", 6379);Jedis jedis = null;try  {jedis = pool.getResource();jedis.set("name", "lisi");String name = jedis.get("name");System.out.println(name);}catch(Exception ex){ex.printStackTrace();}finally{if(jedis != null){//关闭连接jedis.close();}}}


3、集群连接。

// 连接redis集群@Testpublic void testJedisCluster() {JedisPoolConfig config = new JedisPoolConfig();// 最大连接数config.setMaxTotal(30);// 最大连接空闲数config.setMaxIdle(2);//集群结点Set<HostAndPort> jedisClusterNode = new HashSet<HostAndPort>();jedisClusterNode.add(new HostAndPort("192.168.101.3", 7001));jedisClusterNode.add(new HostAndPort("192.168.101.3", 7002));jedisClusterNode.add(new HostAndPort("192.168.101.3", 7003));jedisClusterNode.add(new HostAndPort("192.168.101.3", 7004));jedisClusterNode.add(new HostAndPort("192.168.101.3", 7005));jedisClusterNode.add(new HostAndPort("192.168.101.3", 7006));JedisCluster jc = new JedisCluster(jedisClusterNode, config);JedisCluster jcd = new JedisCluster(jedisClusterNode);jcd.set("name", "zhangsan");String value = jcd.get("name");System.out.println(value);}

4、spring整合。

<!-- 连接池配置 --><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><!-- redis单机 通过连接池 --><bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="close"><constructor-arg name="poolConfig" ref="jedisPoolConfig"/><constructor-arg name="host" value="192.168.25.145"/><constructor-arg name="port" value="6379"/></bean>

测试代码:

private ApplicationContext applicationContext;@Beforepublic void init() {applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");}@Testpublic void testJedisPool() {JedisPool pool = (JedisPool) applicationContext.getBean("jedisPool");try  {jedis = pool.getResource();jedis.set("name", "lisi");String name = jedis.get("name");System.out.println(name);}catch(Exception ex){ex.printStackTrace();}finally{if(jedis != null){//关闭连接jedis.close();}}}


原创粉丝点击