使用Jedis操作redis

使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip

如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar,下载地址:http://files.cnblogs.com/liuling/commons-pool-1.5.4.jar.zip

jedis的基本操作:

package com.donghai.redis;

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.junit.Before;
import org.junit.Test;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.SortingParams;
public class RedisClient {

    private Jedis jedis;

    @Before
    public void setup(){
        //连接redis服务器 172.16.100.10:6379
        jedis = new Jedis("172.16.100.10", 6379);
        //如果有密码,需要认真
        //jedis.auth("admin");
    }

    //字符串存储
    @Test
    public void testString(){
        String rect = jedis.set("jk1", "jv1");
        System.out.println(rect);

        Long rectLong = jedis.append("jk2", "jv2"); //拼接
        System.out.println(rectLong);

        rectLong = jedis.del("jk1"); //删除
        System.out.println(rectLong);

        //设置多个键值对
        jedis.mset("name1", "password1", "name2", "password2", "name3", "password3", "age", "10");
        //进行加1操作
        jedis.incr("age");

    }

    @Test
    public void testMap(){
        Map<String, String> map = new HashMap<String, String>();
        map.put("name", "djoker");
        map.put("age", "12");
        map.put("qq", "123123");
        map.put("address", "xs");
        jedis.hmset("user", map);  //存入redis.使用hmset(mset已经被多个字符串存在占用了)

        List<String> rsmap = jedis.hmget("user", "name", "age", "qq", "address"); //取出多个值
        System.out.println(rsmap);

        jedis.hdel("user", "age"); //从map中删除一个键值对
        System.out.println(jedis.hmget("user", "age")); //取出map中的age键的值
        System.out.println(jedis.hlen("user")); //返回map的长度
        System.out.println(jedis.exists("user")); //判断map是否存在
        System.out.println(jedis.hkeys("user")); //取出map中所有键的列表
        System.out.println(jedis.hvals("user")); //取出map中所有值得列表

        Iterator iter = jedis.hkeys("user").iterator();
        while(iter.hasNext()){
            String key = (String)iter.next();
            System.out.println("key:" + key + " value:" + jedis.hmget("user", key));

        }
    }

    @Test
    public void testList(){
        jedis.del("java framework");
        System.out.println(jedis.lrange("java framework", 0, -1));
        //lpush向List左边添加
        jedis.lpush("java framework", "spring");
        jedis.lpush("java framework", "struts");
        jedis.lpush("java framework", "hibernate");
        //lrange取得List的范围 0代表第一位,-1代表最后一位
        System.out.println(jedis.lrange("java framework", 0, -1));
        //rpush向List左边添加
        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));

         SortingParams sortingParameters = new SortingParams();

        jedis.del("num");
        jedis.lpush("num", "1");
        jedis.lpush("num", "5");
        jedis.lpush("num", "2");
        jedis.lpush("num", "10");
        jedis.lpush("num", "8");
        System.out.println(jedis.lrange("num", 0, -1)); //未排序
        System.out.println(jedis.sort("num", sortingParameters.desc())); //排序,但是排序结果不会存入redis服务器

    }

    @Test
    public void testSet(){
        jedis.del("user");
        //添加
        jedis.sadd("user", "1111");
        jedis.sadd("user", "2222");
        jedis.sadd("user", "3333");
        jedis.sadd("user", "4444");
        //删除
        jedis.srem("user", "1111");
        System.out.println(jedis.smembers("user")); //所有的成员
        System.out.println(jedis.sismember("user", "1111")); //判断成员1111是否在user中
        System.out.println(jedis.srandmember("user"));   //随机从user中取出一个成员
        System.out.println(jedis.scard("user")); //返回user中的成员个数

    }

    public static void main(String[] args){

    }
}

采用redis连接池的配置

package com.donghai.redis;

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

public class RedisClientPool {

    private static String address = "172.16.100.10";

    private static int port = 6379;

    private static String auth = "admin";

    private static int MAX_ACTIVE = 1024;

    private static int MAX_IDLE = 200;

    private static int MAX_WAIT = 10000;

    private static int TIMEOUT = 10000;

    private static boolean TEST_ON__BORROW = true;

    private static JedisPool jedisPool = null;

    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,address, port,TIMEOUT );
        } catch(Exception e){
            e.printStackTrace();
        }
    }

    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;
        }
    }

    public static void returnResource(final Jedis jedis){
        if(jedis != null){
            jedisPool.returnResource(jedis);
        }
    }
}

使用连接池配置测试

package com.donghai.redis;

import redis.clients.jedis.Jedis;

public class Client {

    public static void main(String[] args){
        //从连接池中获取Jedis
        Jedis jedis = RedisClientPool.getJedis();
        jedis.set("jedisPool-k", "jedisPool-v");
        //把Jedis放回到连接池中
        RedisClientPool.returnResource(jedis);

    }

}
时间: 2024-08-03 18:56:00

使用Jedis操作redis的相关文章

Java中Jedis操作Redis与Spring的整合

Redis是一个key-value存储系统.它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.为了保证效率,数据都是缓存在内存中.redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步.以下是

四、Jedis操作Redis

前言:  原来我们操作mysql需要用的jdbc,现在操作redis则需要jedis,jedis是客户端,而redis是服务器,使用jedis客户端来操作redis. 在这里要使用jedis操作redis需要引入下面两个jar包 一.Jedis简单操作 1.使用jedis 客户端,完成jedis简单操作: public class JedisTest { @Test() public void setRedis(){ Jedis connection = new Jedis("127.0.0.1

Java中使用Jedis操作Redis

转载:http://www.cnblogs.com/liuling/p/2014-4-19-04.html 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip 如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar,下载地址:http://files.cnblogs.com/liuling/commons-pool-1.5.4.jar.zip

java中使用jedis操作redis(连接池方式)

1 package com.test; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.List; 6 import java.util.Map; 7 8 import org.junit.Before; 9 import org.junit.Test; 10 11 import redis.clients.jedis.Jedis; 12 13 public class TestRedis

使用jedisPool管理jedis,使用jedis操作redis

ps:jedis是redis在java中的客户端操作工具 package com.test; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.List; 6 import java.util.Map; 7 8 import org.junit.Before; 9 import org.junit.Test; 10 11 import redis.clients.jedis.Jedis; 1

Java使用Jedis操作Redis大全

Java操作Redis需要导入两个jar: commons-pool2-2.4.2.jar jedis-2.1.0.jar package com.chinasofti.test; import java.io.IOException; import java.io.OutputStream; import java.util.HashMap; import java.util.Map; import java.util.logging.Logger; import org.junit.Befo

【转载】Java中使用Jedis操作Redis

1 package com.test; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.List; 6 import java.util.Map; 7 8 import org.junit.Before; 9 import org.junit.Test; 10 11 import redis.clients.jedis.Jedis; 12 13 public class TestRedis

Redis学习-5 Jedis操作Redis

1.Jedis Jedis在java应用中操作Redis; 2.Jedis访问Redis 下载Jedis http://search.maven.org和Commons-Poolx [关闭linux的防火墙] 新建java project 导入jar jedis的jar 新建class,创建jedis对象,连接到Redis服务器, String host = "192.168.1.1"; int port = 6379; Jedis jedis = new Jedis(host,por

Spring-Boot 使用 Jedis 操作 Redis

背景: 1.Redis 之前学了个皮毛 还忘的差不多了,感觉公司项目中的Redis用的真的牛逼,so 需要深造. 2.有个同事在搞Jedis,勾起了我对知识的向往,不会用,但是很渴望. 过程: 1.改造原有项目集成Jedis,引入jar包 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.2</ver