Redis学习(五)Java使用Redis

简单的工程

RedisJavaDemo使用maven来构建项目,pom配置

 
    
      redis.clients
      jedis
      2.9.0
    

代码如下:

package com.sima.redis;

import redis.clients.jedis.Jedis;

import java.util.Iterator;
import java.util.Set;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
        //连接本地的 Redis 服务
        Jedis jedis = new Jedis("225.100.212.123");
        //设置密码
        jedis.auth("123123");
        //查看服务是否运行
        System.out.println("服务正在运行: "+jedis.ping());
        //设置 redis 字符串数据
        jedis.set("foo", "Hello World!");
        // 获取存储的数据并输出
       System.out.println("redis 存储的字符串为: "+ jedis.get("foo"));
    }
}

运行结果

Redis学习(五)Java使用Redis_第1张图片
补充
  • List存储
       //存储数据到列表中
        jedis.lpush("mylist", "maple1");
        jedis.lpush("mylist", "maple2");
        jedis.lpush("mylist", "maple3");
        // 获取存储的数据并输出
        List list = jedis.lrange("site-list", 0 ,2);
        for(int i=0; i
  • 获取所有的key
// 获取数据并输出
        Set keys = jedis.keys("*"); 
        Iterator it=keys.iterator() ;   
        while(it.hasNext()){   
            String key = it.next();   
            System.out.println(key);   
        }

Redis连接池

package com.sima.redis;

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

/**
 * Created by maple on 2017-08-10.
 */
public class RedisUtils {
    //Redis服务器IP
    private static String ADDR = "225.100.212.123";
    //Redis的端口号
    private static int PORT = 6379;
    //访问密码
    private static String AUTH = "123123";
    //可用连接实例的最大数目,默认值为8;
    //如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
    private static int MAX_TOTAL = 1024;
    //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。
    private static int MAX_IDLE = 200;
    //等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException;
    private static int MAX_WAIT = 10000;
    private static int TIMEOUT = 10000;
    //在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
    private static boolean TEST_ON_BORROW = true;
    private static JedisPool jedisPool = null;

    /**
     * 初始化Redis连接池
     */
    static {
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(MAX_TOTAL);
        config.setMaxIdle(MAX_IDLE);
        config.setMaxWaitMillis(MAX_WAIT);
        config.setTestOnBorrow(TEST_ON_BORROW);
        jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);
    }
    /**
     * 获取Jedis实例
     */
    public synchronized static Jedis getJedis(){
        if (jedisPool != null){
            Jedis jedis = jedisPool.getResource();
            return jedis;
        }else {
            return null;
        }
    }
    /**
     * 释放Jedis资源
     */
    public static void close(Jedis jedis){
        if (jedis != null){
            jedis.close();
        }
    }
}
package com.sima.redis;

import redis.clients.jedis.Jedis;

/**
 * Created by maple on 2017-08-10.
 */
public class AppByUtil {
    public static void main( String[] args ){

        Jedis jedis = RedisUtils.getJedis();
        System.out.println("redis 存储的字符串为: " + jedis.get("foo"));
        RedisUtils.close(jedis);

    }
}

注意点

在实际项目运用中,发下Jedis的方法调用失败后,在控制台并没有报异常错误,所有需要代码try-catch一下。

Redis学习(五)Java使用Redis_第2张图片

你可能感兴趣的:(Redis学习(五)Java使用Redis)