Redis实战之使用jedis客户端操作Redis(1)          返回主页


之前的文章中讲解了Redis的安装及命令以及主要的数据结构,本文主要讲解如何在java下使用jedis进行对Redis的操作。


Jedis是什么

Jedis 是 Redis 官方首选的 Java 客户端开发包。

Jedis使用简单,通过内置的API能够很容易的操作Redis。

使用说明

使用jedis之前首先保证系统中已经安装有能够正常服务的Redis实例,并且下载了Jedis的jar包,在如下位置可以下载2.7.2版本 http://download.csdn.net/download/teamlet/8914387

步骤

1.添加环境bianliang

        建立一个java工程,将下载到的jedis添加到build path中;

2.建立到Redis服务的连接

        public class JedisSingleton {

            private JedisSingleton() {}

            private static Jedis jedis = new Jedis("localhost");

            public static Jedis getJedisInstance() {
                return jedis;
            }
        }

说明: 1. 这里通过一个单例模式的类建立了与Redis的连接 2. 通过方法getJedisInstance()返回jedis连接实例

3.操作Redis数据结构

public class JedisClient {

    public static void main(String[] args) {
  1. 单例模式的JedisSingleton中的getJedisInstance内部通过Jedis(String host)构造方法建立到Redis的连接
  2. jedis内置的方法能够直接调用其命令执行到Redis的连接检查

        //获取jedis实例
        Jedis jedis = JedisSingleton.getJedisInstance();
        //检查服务是否正常运行
        System.out.println("服务正在运行:" + jedis.ping());
    
  3. 通过jedis的set(String key, String value)方法将字符串形式的K-V注入到Redis中

  4. get(String key)方法将对应的key的value取出

        //设置字符串数据
        jedis.set("name", "snowalker");
        System.out.println("取出字符串:name的值为" + jedis.get("name"));
    
  5. lpush(String key, String strings[])方法写入Redis列表

  6. 同一个key下的列表能够通过java.util.List获取并遍历

        //Redis列表
        jedis.lpush("cartoon", "火影忍者");
        jedis.lpush("cartoon", "Bleach");
        jedis.lpush("cartoon", "OnePiece");
    
        List<String> list = jedis.lrange("cartoon", 0, 3);
        for (String string : list) {
            System.out.println(string);
        }
    
  7. 通过jedis的keys(pattern)方法读取到key的集合并遍历输出

  8. 注意,keys()方法的内部实现为Set,旧版本中使用List(),这里注意新旧版本的区别

            //获取列表的所有key
            //对应redis命令为keys *
            //jedis的keys内部实现为set
            System.out.println("**********keys***************");
            Set<String> keys =  jedis.keys("*");
            for (String string : keys) {
                System.out.println(string);
            }
    
        }
    }
    

运行结果

        服务正在运行:PONG
        取出字符串:name的值为snowalker
        OnePiece
        Bleach
        火影忍者
        OnePiece
        **********keys***************
        key1
        key2
        A
        bar
        cartoon
        FOO
        name