Jedis最全操作

1.jedis的基本使用

1.1jedis的介绍

  • Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如javaCC#C++phpNode.jsGo等。 在官方网站里列一些Java的客户端,有JedisRedissonJredisJDBC-Redis、等其中官方推荐使用JedisRedisson 在企业中用的最多的就是JedisJedis同样也是托管在github上,地址:https://github.com/xetorthio/jedis 下载jedis解压后得到jar包如下:

 1.2 jedis的基本操作

1.2.1jedis常用API

方法 解释
new Jedis(host, port) 创建jedis对象,参数host是redis服务器地址,参数port是redis服务端口
set(key,value) 设置字符串类型的数据
get(key) 获得字符串类型的数据
hset(key,field,value) 设置哈希类型的数据
hget(key,field) 获得哈希类型的数据
lpush(key,values) 设置列表类型的数据
lpop(key) 列表左面弹栈
rpop(key) 列表右面弹栈
del(key) 删除指定的key

1.2.2 jedis的基本操作

package com.sunny.web;

import redis.clients.jedis.Jedis;

import java.util.List;

public class jedisDemo {
    public static void main(String[] args) {
        /**
         * 使用jedis操作Redis
         * 操作Redis刚才使用都是命令,刚才的命令变成了jedis里面的方法
         * set key value--->java中的方法 set(String key,String value);
         */
        //1.创建jedis对象,用于连接Redis
        /**
         * new jedis(String host,int port);
         * host,指定Redis服务器的地址
         * port,指定服务器占用端口号
         */
        Jedis jedis = new Jedis("localhost",6379);
        //2,操作字符串类型数据
        //写入
        jedis.set("name", "zhangshan");
        //读取
        String value = jedis.get("name");
        //打印
        System.out.println("name="+value);
        //3.操作list类型数据
        //写入
        jedis.lpush("mylist","one","two","three");
        //读取
        List mylist = jedis.lrange("mylist", 0, -1);
        //打印
        System.out.println("mylist"+mylist);
        //4.关闭连接
        jedis.close();
    }
}

 2.1 jedis连接池的使用

2.1.1jedis连接池的基本概念

  • jedis连接资源的创建于销毁是很消耗程序性能,所有jedis为我们提供了jedis的池化技术,jedisPool在创建时初始化一些连接资源存储到连接池中,使用jedis连接资源时不需要创建,而是从连接池中获取一个资源进行Redis的操作,使用完毕之后,不需要销毁该jedis连接资源,而是将资源归还给连接池,供其他请求使用。

 2.1.2 jedisPool的基本使用

package com.sunny.web;

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

import java.util.List;

public class jedisDemo2 {
    public static void main(String[] args) {
        //1.创建jedis连接池,并从连接池里面获取连接
        //创建配置对象
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(10);//最大连接数
        config.setMaxWaitMillis(30000);//用户最大等待时间
        //创建连接池对象
        // public JedisPool(GenericObjectPoolConfig poolConfig, String host, int port)
        JedisPool jedisPool = new JedisPool(config,"localhost",6379);
        //从连接池里面获取连接对象jedis
        Jedis jedis = jedisPool.getResource();
        //2,操作字符串类型数据
        //写入
        jedis.set("name", "zhangshan");
        //读取
        String value = jedis.get("name");
        //打印
        System.out.println("name="+value);
        //3.操作list类型数据
        //写入
        jedis.lpush("mylist","one","two","three");
        //读取
        List mylist = jedis.lrange("mylist", 0, -1);
        //打印
        System.out.println("mylist"+mylist);
        //4.关闭连接
        jedis.close();
    }
}

2.1.3 编写jedis连接池工具

在src目录下创建jedis.properties

#最大连接数
maxTotal=10
#用户超时时间
maxWaitMillis=30000
#redis服务器地址
host=localhost
#端口号
port=6379

 JedisUtil.java

package com.sunny.utils;

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

import java.util.ResourceBundle;

public class JedisUtil {

    private static JedisPool jedisPool;

    //静态代码块初始化
    static{
        //读取jedis.properties配置文件解析里面的数据
        //ResourceBundle,专门用于解析properties文件,可以根据文件的名字就可以解析文件
        ResourceBundle resourceBundle = ResourceBundle.getBundle("jedis");//会自动读取类路径里面的文件
        //读取里面的数据
        int maxTotal = Integer.parseInt(resourceBundle.getString("maxTotal"));
        int maxWaitMillis = Integer.parseInt(resourceBundle.getString("maxWaitMillis"));
        String host = resourceBundle.getString("host");
        int port = Integer.parseInt(resourceBundle.getString("port"));

        //创建配置对象
        JedisPoolConfig config= new JedisPoolConfig();
        config.setMaxTotal(maxTotal);//最大连接数
        config.setMaxWaitMillis(maxWaitMillis);//用户最大等待超时时间,单位毫秒数
        //创建连接池对象
        //public JedisPool(GenericObjectPoolConfig poolConfig, String host, int port)
        jedisPool = new JedisPool(config,host,port);
    }
    //方便用户获取一个连接对象
    public static Jedis getJedis(){
        return jedisPool.getResource();
    }
}

测试代码

package com.sunny.web;

import com.sunny.utils.JedisUtil;
import redis.clients.jedis.Jedis;

import java.util.List;

public class jedisDemo3 {
    public static void main(String[] args) {
        //使用工具类获取jedis连接
        Jedis jedis = JedisUtil.getJedis();
        //2,操作字符串类型数据
        //写入
        jedis.set("name", "zhangshan");
        //读取
        String value = jedis.get("name");
        //打印
        System.out.println("name="+value);
        //3.操作list类型数据
        //写入
        jedis.lpush("mylist","one","two","three");
        //读取
        List mylist = jedis.lrange("mylist", 0, -1);
        //打印
        System.out.println("mylist"+mylist);
        //4.关闭连接
        jedis.close();
    }
}

 

你可能感兴趣的:(JAVA,WEB)