码迷,mamicode.com
首页 > 其他好文 > 详细

Jedis

时间:2020-01-31 01:10:17      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:ide   大连   状态   pack   时间   sys   下载   package   between   

Java客户端 Jedis
  Jedis: 一款java操作redis数据库的工具.
  使用步骤:
    1. 下载jedis的jar包
    2. 使用
      //1. 获取连接
      Jedis jedis = new Jedis("localhost",6379);
      //2. 操作
      jedis.set("username","zhangsan");
      //3. 关闭连接
      jedis.close();

      Jedis操作各种redis中的数据结构
        1) 字符串类型 string
          set
          get

        2) 哈希类型 hash : map格式
          hset
          hget
          hgetAll

        3) 列表类型 list : linkedlist格式。支持重复元素
          lpush / rpush
          lpop / rpop
          lrange start end : 范围获取

        4) 集合类型 set : 不允许重复元素
          sadd
          smembers:获取所有元素

        5) 有序集合类型 sortedset:不允许重复元素,且元素有顺序
          zadd
          zrange

package com.fgy.jedis.test;

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

import java.util.List;
import java.util.Map;
import java.util.Set;

public class JedisTest {

    private Jedis jedis;

    @Before
    public void before() {
        jedis = new Jedis();
        // jedis = new Jedis("localhost", 6379);
        jedis.auth("root");
    }

    @After
    public void after() {
        if (jedis != null) {
            jedis.close();
        }
    }

    @Test
    public void testString() {
        jedis.set("age", "10");
        String age = jedis.get("age");
        System.out.println(age);
        // 可以指定过期时间的 key value
        jedis.setex("activecode", 20, "hehe"); // 20秒过期

    }

    @Test
    public void testHash() {
        jedis.hset("myHash", "name", "张三");
        String name = jedis.hget("myHash", "name");
        System.out.println(name);
        System.out.println("------------------------------------");
        jedis.hset("myHash", "gender", "男");

        Map<String, String> map = jedis.hgetAll("myHash");
        Set<Map.Entry<String, String>> entrySet = map.entrySet();
        for (Map.Entry<String, String> entry : entrySet) {
            System.out.println(entry.getKey() + "---" + entry.getValue());
        }
        System.out.println("------------------------------------");

        Long hdel = jedis.hdel("myHash", "name");
        System.out.println(hdel);
    }

    @Test
    public void testList() {
        jedis.lpush("myList", "a", "b", "c");
        jedis.rpush("myList", "a", "b", "c");
        List<String> list = jedis.lrange("myList", 0, -1);
        for (String s : list) {
            System.out.println(s);
        }

        String element1 = jedis.rpop("myList");
        String element2 = jedis.lpop("myList");
        System.out.println(element1 + "--" + element2);
    }

    @Test
    public void testSet() {
        jedis.sadd("mySet", "lily", "zhangsan");
        Set<String> mySet = jedis.smembers("mySet");
        for (String s : mySet) {
            System.out.println(s);
        }
        System.out.println("------------------------");

        Long srem = jedis.srem("mySet", "zhangsan");
        System.out.println(srem);
    }

    @Test
    public void testSortedset() {
        jedis.zadd("mySortedset", 3, "c");
        jedis.zadd("mySortedset", 2, "b");
        jedis.zadd("mySortedset", 1, "a");
        Set<String> set = jedis.zrange("mySortedset", 0, -1);
        for (String s : set) {
            System.out.println(s);
        }

        Long zrem = jedis.zrem("mySortedset", "a");
        System.out.println(zrem);
    }

    @Test
    public void testCommon() {
        Set<String> set = jedis.keys("*");
        for (String s : set) {
            System.out.print(s);
            String type = jedis.type(s);
            System.out.println("   " + type);
            jedis.del(s);
        }
    }
}

  jedis连接池: JedisPool
    使用:
      1. 创建JedisPool连接池对象
      2. 调用方法 getResource()方法获取Jedis连接
    //0.创建一个配置对象
    JedisPoolConfig config = new JedisPoolConfig();
    config.setMaxTotal(50);
    config.setMaxIdle(10);
    //1.创建Jedis连接池对象
    JedisPool jedisPool = new JedisPool(config,"localhost",6379);
    //2.获取连接
    Jedis jedis = jedisPool.getResource();
    //3. 使用
    jedis.set("hehe","heihei");
    //4. 关闭 归还到连接池中
    jedis.close();

package com.fgy.jedis.test;

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

/**
 * jedis连接池的使用
 */
public class JedisPoolTest {
    public static void main(String[] args) {
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(50); // 设置最大连接数
        config.setMaxIdle(10); // 设置最大空闲连接

        JedisPool jedisPool = new JedisPool(config, "localhost", 6379, 2000, "root");
        Jedis jedis = jedisPool.getResource();
        jedis.set("name", "lily");
        jedis.close();
    }
}

jedis详细配置

#最大活动对象数     

redis.pool.maxTotal=1000    

#最大能够保持idel状态的对象数      

redis.pool.maxIdle=100  

#最小能够保持idel状态的对象数   

redis.pool.minIdle=50    

#当池内没有返回对象时,最大等待时间    

redis.pool.maxWaitMillis=10000    

#当调用borrow Object方法时,是否进行有效性检查    

redis.pool.testOnBorrow=true    

#当调用return Object方法时,是否进行有效性检查    

redis.pool.testOnReturn=true  

#“空闲链接”检测线程,检测的周期,毫秒数。如果为负值,表示不运行“检测线程”。默认为-1.  

redis.pool.timeBetweenEvictionRunsMillis=30000  

#向调用者输出“链接”对象时,是否检测它的空闲超时;  

redis.pool.testWhileIdle=true  

# 对于“空闲链接”检测线程而言,每次检测的链接资源的个数。默认为3.  

redis.pool.numTestsPerEvictionRun=50  

#redis服务器的IP    

redis.ip=xxxxxx  

#redis服务器的Port    

redis.port=6379

Jedis

标签:ide   大连   状态   pack   时间   sys   下载   package   between   

原文地址:https://www.cnblogs.com/roadlandscape/p/12244393.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!