redis - Java操作 用redisson 和 jedis 操作redis数据库

上一篇搭建好的服务器一直开着要。

Java连接Redis的使用示例

     Redis是开源的key-value存储工具,redis通常用来存储结构化的数据,因为redis的key可以包含String、hash、listset和sorted list。

     Redisserver目前最稳定的版本是2.8.9,可以到官网http://redis.io/download下载。根据机器的类型及位数下载对应的版本安装即可,reids支持Linux和windows操作系统。

     Redisclient支持多种语言,包括:c、C++、C#、PHP、java、Python、Go等语言,根据自己的开发语言,选择合适的redis client版本类型即可。我是使用java语言开发的,针对java语言,redis client也提供了多种客户端支持,按照推荐类型依次是:Jedis、Redisson、JRedis、JDBC-Redis、RJC、redis-protocol、aredis、lettuce。前两种类型是比较推荐的,我们采用了Redisson类型版本作为redisclient的使用。

     Redisson的源码工程所在位置:https://github.com/mrniko/redisson。这里有使用示例及一些介绍,这里不再详细的介绍。
  1. 新建maven工程
  2. 在pom.xml文件的dependencies节点下增加如下内容:
<dependency>
        <groupId>org.redissongroupId>
        <artifactId>redissonartifactId>
        <version>1.0.2version>
    dependency>
    <dependency>
     <groupId>org.slf4jgroupId>
     <artifactId>slf4j-log4j12artifactId>
     <version>1.7.7version>
     dependency>
  1. 保存pom.xml后,等eclispe工程构建完成后即可进行开发了
**1- redisson操作redis**
package com.baobaotao.utils;

import java.util.Queue;
import java.util.Set;
import java.util.concurrent.ConcurrentMap;

import org.redisson.Config;
import org.redisson.Redisson;

public class RedisExample {

    public static void main(String[] args) {
        Config config=new Config();
        config.setConnectionPoolSize(10);
        config.addAddress("127.0.0.1:6379");
        Redisson redisson=Redisson.create(config);
        System.out.println("连接redis");
        ConcurrentMap map=redisson.getMap("FirstMap");
        map.put("czy", "男");
        map.put("yinan", "男");
        map.put("pengfei", "女");

        ConcurrentMap resultmap=redisson.getMap("FirstMap");
        System.out.println("resultmap="+resultmap.keySet());

        Set myset=redisson.getSet("MySet");
        myset.add("czy");
        myset.add("pengfei");

        Set resultSet=redisson.getSet("MySet");
        System.out.println("resultset="+resultSet.size());

         //3.测试Queue队列  
        Queue myQueue = redisson.getQueue("FirstQueue"); 
        myQueue.add("wuguowei"); 
        myQueue.add("lili"); 
        myQueue.add("zhangsan"); 
        System.out.println(myQueue.peek());
        System.out.println(myQueue.poll());

        Queue resultQueue=redisson.getQueue("FirstQueue"); 
        System.out.println("resultQueue==="+resultQueue); 
        // 关闭连接  
        redisson.shutdown(); 
    }
}

2-jedis 操作redis

<dependencies>  
  <dependency>  
    <groupId>redis.clientsgroupId>  
    <artifactId>jedisartifactId>  
    <version>2.1.0version>  
  dependency>  

  <dependency>  
    <groupId>junitgroupId>  
    <artifactId>junitartifactId>  
    <version>4.8.2version>  
    <scope>testscope>  
  dependency>  
dependencies>  
package com.baobaotao.test;

import java.util.ResourceBundle;

import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class JedisPoolTest {

    private static JedisPool jedisPool;  

    /** * initPoolConfig * 
------------------------------
* @return */
private static JedisPoolConfig initPoolConfig() { JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); // 控制一个pool最多有多少个状态为idle的jedis实例 jedisPoolConfig.setMaxActive(1000); // 最大能够保持空闲状态的对象数 jedisPoolConfig.setMaxIdle(300); // 超时时间 jedisPoolConfig.setMaxWait(1000); // 在borrow一个jedis实例时,是否提前进行alidate操作;如果为true,则得到的jedis实例均是可用的; jedisPoolConfig.setTestOnBorrow(true); // 在还会给pool时,是否提前进行validate操作 jedisPoolConfig.setTestOnReturn(true); return jedisPoolConfig; } /** * 初始化jedis连接池 *
------------------------------
*/
@BeforeClass public static void before() { JedisPoolConfig jedisPoolConfig = initPoolConfig(); // 属性文件读取参数信息 ResourceBundle bundle = ResourceBundle.getBundle("redis"); String host = bundle.getString("redis.host"); int port = Integer.valueOf(bundle.getString("redis.port")); // 构造连接池 jedisPool=new JedisPool(jedisPoolConfig, host, port); } @Test public void testSet() { Jedis jedis = null; // 从池中获取一个jedis实例 try { jedis = jedisPool.getResource(); jedis.set("blog_pool", "java2000_wl"); } catch (Exception e) { // 销毁对象 jedisPool.returnBrokenResource(jedis); Assert.fail(e.getMessage()); } finally { // 还会到连接池 jedisPool.returnResource(jedis); } } @Test public void testGet() { Jedis jedis = null; try { // 从池中获取一个jedis实例 jedis = jedisPool.getResource(); System.out.println(jedis.get("blog_pool")); } catch (Exception e) { // 销毁对象 jedisPool.returnBrokenResource(jedis); Assert.fail(e.getMessage()); } finally { // 还会到连接池 jedisPool.returnResource(jedis); } } }

上面是两种使用方法,接下来会讲解在spring中使用redis。

java.util.ResourceBundle使用详解

一、认识国际化资源文件

这个类提供软件国际化的捷径。通过此类,可以使您所编写的程序可以:
轻松地本地化或翻译成不同的语言
一次处理多个语言环境
以后可以轻松地进行修改,支持更多的语言环境

说的简单点,这个类的作用就是读取资源属性文件(properties),然后根据.properties文件的名称信息(本地化信息),匹配当前系统的国别语言信息(也可以程序指定),然后获取相应的properties文件的内容。

使用这个类,要注意的一点是,这个properties文件的名字是有规范的:一般的命名规范是: 自定义名语言代码国别代码.properties,
如果是默认的,直接写为:自定义名.properties
比如:
myres_en_US.properties
myres_zh_CN.properties
myres.properties

当在中文操作系统下,如果myres_zh_CN.properties、myres.properties两个文件都存在,则优先会使用myres_zh_CN.properties,当myres_zh_CN.properties不存在时候,会使用默认的myres.properties。

没有提供语言和地区的资源文件是系统默认的资源文件。
资源文件都必须是ISO-8859-1编码,因此,对于所有非西方语系的处理,都必须先将之转换为Java Unicode Escape格式。转换方法是通过JDK自带的工具native2ascii.

你可能感兴趣的:(eclispe,j2ee,redis)