1. 程式人生 > >redis 在java中的例項使用場景

redis 在java中的例項使用場景

redis 是一種Nosql快取技術,它儲存的都是序列化之後的資料。在java中使用redis的話需引入一個輔助jar,本文用的是jedis-2.9.0.jar.

由於專案中用到了log4j,所有還需要引入對於的jar

JedisKit 工具類

package com.iflytek.zhangh;

import org.apache.log4j.Logger;
import redis.clients.jedis.Jedis;

/**
 * Java 連線redis的工具輔助類redis
 * 
 * @author hzhang
 *
 */
public class JedisKit
{
public static Logger logger = Logger.getLogger(JedisKit.class); private JedisKit() { } private static JedisKit jedisKit = new JedisKit(); private static Jedis jedis; static { jedis = new Jedis("127.0.0.1", 6379); jedis.auth("123456");//密碼 jedis.flushDB();//清空當前資料庫
logger.info("jedis status: " + (jedis.ping().equals("PONG") ? "200" : "error")); } /** * jedis 初始化 * * @return */ public static Jedis getJedis() { return jedis; } public static JedisKit getInstance() { return jedisKit; } }

JedisTest 測試類

package com.iflytek.zhangh;

import org.junit.Test;
import redis.clients.jedis.Jedis;

/**
 * redis 測試類
 * @author Administrator
 *
 */
public class JedisTest{

    /**
     * 測試字串
     */
    @Test
    public void testJedisString(){
        Jedis jedis = JedisKit.getJedis();
        jedis.set("demo", "abc");
        jedis.exists("demo");
        System.out.println("result= "+("abc".equals(jedis.get("demo"))));
    }

    /**
     * 測試雜湊Hash
     */
    @Test
    public void testjedisHash(){
        Jedis jedis = JedisKit.getJedis();
        jedis.hset("key1", "field1", "name1");
        jedis.hset("key1", "field2", "name2");
        jedis.hset("key2", "field3", "name3");
        jedis.hset("key3", "field4", "name4");
        jedis.hset("key3", "field5", "name5");
        System.out.println(jedis.hgetAll("key1"));
        System.out.println(jedis.hget("key1", "field1"));
        System.out.println(jedis.hgetAll("key2"));
        System.out.println(jedis.hgetAll("key3"));
    }
    /**
     * 測試列表List
     */
    @Test
    public void testJedisList(){
        Jedis jedis = JedisKit.getJedis();
        jedis.lpush("studentNo", "zhangheng");
        jedis.lpush("studentNo", "lisi");
        System.out.println("length: "+jedis.llen("studentNo")+jedis.lrange("studentNo", 0, 10));
    }
    /**
     * 測試無序集合set
     */
    @Test
    public void testJedisSet(){
        Jedis jedis = JedisKit.getJedis();
        jedis.sadd("Name", "zhangheng1");
        jedis.sadd("Name", "zhangheng2");
        jedis.sadd("Name", "zhangheng4");
        jedis.sadd("Name", "zhangheng3");
        jedis.sadd("Name", "zhangheng3");//集合元素有唯一性 不會被插入
        jedis.sadd("Name2", "zhangheng3");
        jedis.sadd("Name2", "zhangheng4");
        System.out.println(jedis.scard("Name"));//獲取集合的成員數
        System.out.println(jedis.smembers("Name"));//返回集合中的所有成員
    }

    /**
     * 測試有序集合(sorted set)
     */
    @Test
    public void testJedisZset(){
        Jedis jedis = JedisKit.getJedis();
        jedis.zadd("teacher", 0, "teacher1");
        jedis.zadd("teacher", 1, "teacher2");
        jedis.zadd("teacher", 2, "teacher4");
        jedis.zadd("teacher", 3, "teacher3");
        jedis.zadd("teacher", 4, "teacher33");
        jedis.zadd("teacher", 5, "teacher33");//成員具有唯一性
        System.out.println(jedis.zcard("teacher"));//獲取集合的成員數
        System.out.println(jedis.zcount("teacher", 1, 3));//返回指定區間的成員數
        System.out.println(jedis.zrange("teacher", 0, -1));//0表示第一個元素 -1表示倒數第一個
    }
}

具體輸出結果還請大家去嘗試