Java中简单使用Redis

来源:互联网 发布:计算机编程有什么种类 编辑:程序博客网 时间:2024/06/02 19:43

Java中简单使用Redis

因无事这两天把Redis看了下,本人也是刚学,如果不对的地方,欢迎各位拍砖指点指点:

什么是Redis?

Redis的是一个开源,高级的键值存储和一个适用的解决方案,用于构建高性能,可扩展的网络应用程序。

Redis有三个主要特点,使其优越于其它键值数据存储系统 -

Redis的将其数据库完全保存在内存中,仅使用磁盘进行持久化。
与其它键值数据存储相比,Redis的有一组相对丰富的数据类型。
Redis的可以将数据复制到任意数量的从机中。

Java操作Redis:

/* redis 客户端封装 */

package com.wdb.common;

import org.apache.log4j.Logger;

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

/* redis 客户端封装 */
public class RedisClient {
/**
* 日志记录
*/
private static final Logger logger =
Logger.getLogger(RedisClient.class.getName());
//Redis IP地址
private static String ADDR = “127.0.0.1”;
//Redis端口号
private static int PORT = 6379;
//访问密码
private static String password = “”;
private static int TIMEOUT = 10000;
/**
* redis 连接池
*/
private static JedisPool jedisPool;
private static Jedis jedis = null;

//静态测试static{    jedisPool  = new JedisPool(new JedisPoolConfig(), ADDR, PORT, TIMEOUT);}public static synchronized Jedis resource() throws Exception{    try {        if (null != jedisPool)        jedis = jedisPool.getResource();    } catch (Exception e) {        e.printStackTrace();        throw e;    }    return jedis;}/** * 获取连接 * @return */public static Jedis getResource() throws Exception{    try {        if (null == jedis)            resource();    } catch (Exception e) {        e.printStackTrace();        throw e;    }    return jedis;}/** * 关闭连接 * @param jedis */public void disconnect(Jedis jedis){    jedis.disconnect();}public void returnResource(Jedis jedis){    if (null == jedis)        return;        /**         * @deprecated jedis版本3后此方法隐藏         * try {            pool.returnResource(jedis);        } catch (Exception e) {        }*/    jedis.close();}public void setPool(JedisPool pool) {    this.jedisPool = pool;}public JedisPool getPool() {    return jedisPool;}

}

测试:

package webdemo;

import org.junit.Test;

import redis.clients.jedis.Jedis;

import com.wdb.common.RedisClient;

public class TestRedis {

/** * 测试连接 */@org.junit.Testpublic void setup() {    try {        Jedis jedis = RedisClient.getResource();        if (null != jedis){            System.out.println("连接成功~~~~~~~~~~~~");        }    } catch (Exception e) {        e.printStackTrace();    }}/** * 新增一个key/value */@Testpublic void set(){    try {        Jedis jedis = RedisClient.getResource();        if (null != jedis){            jedis.set("keys", "cs");            jedis.set("keys1", "cs");        }    } catch (Exception e) {        e.printStackTrace();    }}/** * 根据key查找 */@Testpublic void get(){    try {        Jedis jedis = RedisClient.getResource();        if (null != jedis){            System.out.println(jedis.get("keys"));        }    } catch (Exception e) {        e.printStackTrace();    }}/** * 返回名称为key的string的value的子串 */@Testpublic void substr(){    try {        Jedis jedis = RedisClient.getResource();        if (null != jedis){            System.out.println(jedis.substr("keys1",0,1000));        }    } catch (Exception e) {        e.printStackTrace();    }}/** * 返回满足给定pattern的所有key */@Testpublic void keys(){    try {        Jedis jedis = RedisClient.getResource();        if (null != jedis){            System.out.println(jedis.keys("cs"));        }    } catch (Exception e) {        e.printStackTrace();    }}/** * 返回当前数据库中key的数目 */@Testpublic void dbsize(){    try {        Jedis jedis = RedisClient.getResource();        if (null != jedis){            System.out.println(jedis.dbSize().toString());        }    } catch (Exception e) {        e.printStackTrace();    }}/** * 删除当前选择数据库中的所有key */@Testpublic void flushdb(){    try {        Jedis jedis = RedisClient.getResource();        if (null != jedis){            System.out.println(jedis.flushDB());        }    } catch (Exception e) {        e.printStackTrace();    }}

}

常用命令:

参考地址:http://redis.readthedocs.io/en/2.6/
本人也是刚学,如果不对的地方,希望各位拍砖指点指点