Redis-Jedis操作

来源:互联网 发布:中国税务网络大学 加速 编辑:程序博客网 时间:2024/06/16 09:08
  1. Redis环境:Redis-x64-3.2.100
  2. 修改密码, 打开redis.windows.conf,去掉注释

    # 密码requirepass 123456
  3. 使用Jedis操作Redis

    1. 依赖jar
      这里写图片描述

    2. 测试类

package com.zzs.redis;import java.util.HashMap;import java.util.List;import java.util.Map;import org.junit.Before;import org.junit.Test;import redis.clients.jedis.Jedis;public class RedisTest {    private Jedis jedis;    @Before    public void setup(){        //在cmd上启动redis服务        //命令: redis-server.exe redis.windows.conf        //链接redis服务器        jedis = new Jedis("127.0.0.1", 6379);        //权限认证        jedis.auth("123456");    }    //redis存储字符串    //@Test    public void testString(){        //添加字符串        jedis.set("name", "keep");        System.out.println(jedis.get("name"));        //拼接字符串        jedis.append("name", " is my name");        System.out.println(jedis.get("name"));        //删除键        jedis.del("name");        System.out.println(jedis.get("name"));        //设置多个键值对        jedis.mset("name", "kkk", "age", "22");        System.out.println(jedis.get("age"));    }    //redis操作Map    //@Test    public void testMap(){        //添加数据        Map<String, String> map = new HashMap<>();        map.put("name", "Jack");        map.put("age", "22");        map.put("qq", "123456");        //添加map        jedis.hmset("user", map);        //取出map        List<String> rsmap = jedis.hmget("user", "name", "age", "qq");        System.out.println(rsmap);        //删除map中的某个键值        jedis.hdel("user", "age");        System.out.println(jedis.hmget("user", "age"));        //返回存放的值个数        System.out.println(jedis.hlen("user"));        //是否存在key为user的记录        System.out.println(jedis.exists("user"));        //返回map对象中所有的key        System.out.println(jedis.hkeys("user"));        //返回map对象中所有的value        System.out.println(jedis.hvals("user"));    }    //Redis操作List    //@Test    public void testList() {        //移除所有内容        jedis.del("java framework");        System.out.println(jedis.lrange("java framework", 0, -1));        //存入数据        jedis.lpush("java framework", "spring");        jedis.lpush("java framework", "struts");        jedis.lpush("java framework", "hibernate");        //取出数据        System.out.println(jedis.lrange("java framework", 0, -1));        //清除数据        jedis.del("java framework");        //存入数据        jedis.rpush("java framework", "spring");        jedis.rpush("java framework", "struts");        jedis.rpush("java framework", "hibernate");        //取出数据        System.out.println(jedis.lrange("java framework", 0, -1));    }    //jedis操作set    //@Test    public void testSet(){        jedis.del("user");        //添加        jedis.sadd("user", "zhangsan");        jedis.sadd("user", "lisi");        jedis.sadd("user", "wangwu");        jedis.sadd("user", "Jack");        //获取set        System.out.println(jedis.smembers("user"));        //移除        jedis.srem("user", "Jack");        //判断是否属于集合        System.out.println(jedis.sismember("user", "Jack"));    }    //jedis排序    //@Test    public void testSort(){        jedis.del("a");        jedis.rpush("a", "1");        jedis.lpush("a", "7");        jedis.lpush("a", "5");        jedis.lpush("a", "9");        System.out.println(jedis.lrange("a", 0, -1));        System.out.println(jedis.sort("a"));        System.out.println(jedis.lrange("a", 0, -1));    }    //线程池测试    @Test    public void testRedisPool(){        RedisUtil.getJedis().set("where", "fsd");        System.out.println(RedisUtil.getJedis().get("where"));    }}
 3. 线程类
package com.zzs.redis;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;public class RedisUtil {    private static String ADDR = "127.0.0.1"; //服务器地址    private static int PORT = 6379; //端口号    private static String AUTH = "123456";  //密码    private static int MAX_ACTIVE = 1024;   //可连接实例最大数目,默认为8, -1表示不限制    private static int MAX_IDLE = 200;  //pool中最大有多少个状态为idle(空闲)的jedis实例,默认为8    private static int MAX_WAIT = 10000;    //等待连接的最大时间(ms),默认为-1, 永不超时。若超时抛出异常    private static int TIMEOUT = 10000;     private static boolean TEST_ON_BORROW = true;   //在borrow一个jedis实例是,是否体检进行validate操作;如果为true,则得到的jedis实例均是可用    private static JedisPool jedisPool = null;    //初始化Redis连接池    static{        try{            JedisPoolConfig config = new JedisPoolConfig();            config.setMaxActive(MAX_ACTIVE);            config.setMaxIdle(MAX_IDLE);            config.setMaxWait(MAX_WAIT);            config.setTestOnBorrow(TEST_ON_BORROW);            jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);        }catch(Exception e){            e.printStackTrace();        }    }    //获取Jedis实例    public synchronized static Jedis getJedis(){        try{            if(jedisPool != null){                Jedis resource = jedisPool.getResource();                return resource;            }else{                return null;            }        }catch(Exception e){            e.printStackTrace();            return null;        }    }    //是否Jedis实例    public static void returnResource(final Jedis jedis){        if(jedis != null){            jedisPool.returnResource(jedis);        }    }}

文章原地址: 这里写链接内容