1. 如何获取Jedis

获取Jar包可以通过Maven库获取:http://mvnrepository.com/artifact/redis.clients/jedis

或者可以通过Maven配置:

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>

2. 设置Redis连接认证

2.1 修改配置文件redis.conf,放开requirepass的注释

################################## SECURITY ###################################

# Require clients to issue AUTH <PASSWORD> before processing any other
# commands.  This might be useful in environments in which you do not trust
# others with access to the host running redis-server.
#
# This should stay commented out for backward compatibility and because most
# people do not need auth (e.g. they run their own servers).
#
# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.
#
requirepass foobared

修改好后,重起redis:

bash-4.2$ ./redis-server ../redis.conf

2.2 或者直接在redis-cli中修改,无需重起,立即生效

127.0.0.1:6379> config set requirepass 123456

3. Jedis操作代码

package com.rc.jedis.common.util;

import redis.clients.jedis.Jedis;

public class JedisUtil {
    
    private static Jedis jedis;
    
    static {
        jedis = new Jedis("localhost", 6379);
        jedis.auth("123456");
    }
    
    public static Jedis getJedisConn() {
        return jedis;
    }
    
    public static void main(String[] args) {
        System.out.println("==================Test String===============================");
        testString();
        System.out.println("==================Test List===============================");
        testList();
        System.out.println("==================Test Set===============================");
        testSet();
        System.out.println("==================Test Hash===============================");
        testHash();
        System.out.println("==================Test Zset===============================");
        testZset();
    }
    
    private static void testString() {
        //添加数据
        jedis.set("skey2", "testskey2");
        System.out.println(jedis.get("skey2"));
        //在字符串后面添加字符
        jedis.append("skey2", " is a test case");
        System.out.println(jedis.get("skey2"));
        //删除
        jedis.del("skey2");
        System.out.println(jedis.get("skey2"));
        //批量添加
        jedis.msetnx("skey1","skey1 value", "skey2", "skey2 value", "skey3", "skey3 value", "skey4", "2");
        jedis.incr("skey4");
        System.out.println(jedis.get("skey1") + " - " + jedis.get("skey2") + " - " + jedis.get("skey3") + " - " + jedis.get("skey4"));
        
    }
    
    private static void testList() {
        //添加List数据
        jedis.lpush("lkey1", "1", "2", "3");
        //获取指定位置的数据
        System.out.println("list:" + jedis.lindex("lkey1", 1));
        //弹出List中所有值
        String popString = jedis.lpop("lkey1");
        while(popString != null)
        {
            System.out.println("List:" + popString);
            popString = jedis.lpop("lkey1");
        }
        //同lpush
        jedis.rpush("lkey1", "1", "2", "3");
        System.out.println("list:" + jedis.lindex("lkey1", 1));
        //删除List
        jedis.del("lkey1");
        System.out.println("list:" + jedis.lindex("lkey1", 1));
    }
    
    private static void testSet() {
        //添加Set数据,同Java的Set,重复数据只存一条
        jedis.sadd("sekey1", "1", "2", "3", "1", "4", "5", "4");
        System.out.println(jedis.smembers("sekey1"));
        //检查元素是否存在
        System.out.println(jedis.sismember("sekey1", "3"));
        System.out.println(jedis.sismember("sekey1", "9"));
        //移除元素
        jedis.srem("sekey1", "2");
        System.out.println(jedis.sismember("sekey1", "2"));
    }
    
    private static void testHash() {
        //添加数据
        jedis.hset("hkey1", "fkey1", "1");
        jedis.hset("hkey1", "fkey2", "2");
        jedis.hset("hkey1", "fkey3", "3");
        System.out.println(jedis.hget("hkey1", "fkey2"));
        System.out.println(jedis.hgetAll("hkey1"));
        //删除
        jedis.hdel("hkey1", "fkey2");
        System.out.println(jedis.hget("hkey1", "fkey2"));
        System.out.println(jedis.hgetAll("hkey1"));
    }
    
    private static void testZset() {
        //添加数据
        jedis.zadd("zkey1", 1, "zfkey1");
        jedis.zadd("zkey1", 3, "zfkey3");
        jedis.zadd("zkey1", 2, "zfkey2");
        jedis.zadd("zkey1", 5, "zfkey5");
        jedis.zadd("zkey1", 4, "zfkey4");
        System.out.println(jedis.zrange("zkey1", 0, -1));
        System.out.println(jedis.zrangeByScore("zkey1", 0, 2));
        jedis.zrem("zkey1", "zfkey3");
        System.out.println(jedis.zrange("zkey1", 0, -1));
    }
    
}