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

来源:互联网 发布:淘宝客服昵称怎么改 编辑:程序博客网 时间:2024/04/30 09:29

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

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.redisson</groupId>        <artifactId>redisson</artifactId>        <version>1.0.2</version>    </dependency>    <dependency>     <groupId>org.slf4j</groupId>     <artifactId>slf4j-log4j12</artifactId>     <version>1.7.7</version>     </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<String, Object> 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.clients</groupId>      <artifactId>jedis</artifactId>      <version>2.1.0</version>    </dependency>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>4.8.2</version>      <scope>test</scope>    </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      * <br>------------------------------<br>      * @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连接池      * <br>------------------------------<br>      */      @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.

0 0
原创粉丝点击