ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

redis13_Jedis代码操作redis4

2022-05-07 10:35:17  阅读:162  来源: 互联网

标签:java redis4 redis13 redis Jedis key import jedis


Java客户端Jedis

1. Jedis介绍

  一款java操作redis数据库的工具

2. 使用步骤

  2.1 下载jedis的jar包

  2.2 使用

    //1. 获取连接

    Jedis jedis = new Jedis("localhost",6379);

    //2. 操作

    jedis.set("username","zhangsan");

    //3. 关闭连接

    jedis.close();

  2.3 实现步骤

   1、把commons-pool2-2.3.jar和jedis-2.7.0.jar包导入项目

   2、src下新建package:cn.itcast.jedis.test

   3、test包下新建JedisTest的Java类

package cn.itcast.jedis.test;

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

/**
 * Jedis测试类
 */
public class JedisTest {

    /**
     * 快速入门
     */
    @Test
    public void test1(){
        //1. 获取连接
        Jedis jedis = new Jedis("localhost",6379);
        //2. 操作
        jedis.set("username","zhangsan");
        //3. 关闭连接
        jedis.close();
    }
}

   4、启动redis服务器及客户端:双击redis-server.exe后双击redis-cli.exe

    127.0.0.1:6379> keys *

    (empty list or set)

   5、运行test1,运行成功后在redis客户端查询结果

    127.0.0.1:6379> keys *

    1) "username"

3. Jedis操作各种redis中的数据结构

  3.1 字符串类型string

    set key value

    get key

    del key

package cn.itcast.jedis.test;

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

/**
 * Jedis测试类
 */
public class JedisTest {

    /**
     * string 数据结构操作
     */
    @Test
    public void test2(){
        //1. 获取连接
        Jedis jedis = new Jedis(); //如果使用空参构造,默认值"localhost",6379端口
        //2. 操作
        //存储
        jedis.set("username","zhangsan");
        //获取
        String username = jedis.get("username");
        System.out.println(username);

        //可以使用setex()方法存储可以指定过期时间的key value
        jedis.setex("activecode",20,"hehe");//将activecode:hehe键值对存入redis,并且20秒后自动删除该键值对

        //3. 关闭连接
        jedis.close();
    }

}

    运行test2,检查运行结果输出:zhangsan

    

     启动redis-server.exe、redis-cli.exe,查询所有的键发现有activecode及对应值hehe,20秒后查询无activecode键及对应值

    

  3.2 哈希类型hash:map格式

    hset key field value

    hget key field

    hgetAll key

    hdel key field

package cn.itcast.jedis.test;

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

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

/**
 * Jedis测试类
 */
public class JedisTest {

    /**
     * hash 数据结构操作
     */
    @Test
    public void test3(){
        //1. 获取连接
        Jedis jedis = new Jedis(); //如果使用空参构造,默认值"localhost",6379端口
        //2. 操作
        //存储
        jedis.hset("user","name","lisi");
        jedis.hset("user","age","23");
        jedis.hset("user","gender","female");//重复赋值之前的值会被覆盖掉

        //获取
        String name = jedis.hget("user", "name");
        System.out.println(name);

        //获取hash的所有map中的数据
        Map<String, String> user = jedis.hgetAll("user");
        Set<String> keySet = user.keySet();
        for(String key : keySet){
            String value = user.get(key);
            System.out.println(key+":"+value);
        }

        //3. 关闭连接
        jedis.close();
    }

}

  运行test3,检查控制台输出结果

  

  3.3 列表类型list:linkedlist格式。支持重复元素

    lpush/rpush key value

    lrange key start end:范围获取

    lpop/rpop key 

package cn.itcast.jedis.test;

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

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

/**
 * Jedis测试类
 */
public class JedisTest {

    /**
     * list 数据结构操作
     */
    @Test
    public void test4(){
        //1. 获取连接
        Jedis jedis = new Jedis(); //如果使用空参构造,默认值"localhost",6379端口
        //2. 操作
        //存储
        jedis.lpush("mylist","a","b","c");//从左边存
        jedis.rpush("mylist","d","e","f");//从右边存

        //list范围获取
        List<String> mylist = jedis.lrange("mylist", 0, -1);
        System.out.println(mylist);

        //list弹出
        String element1 = jedis.lpop("mylist");
        System.out.println(element1);

        String element2 = jedis.rpop("mylist");
        System.out.println(element2);

        //list范围获取
        List<String> mylist2 = jedis.lrange("mylist", 0, -1);
        System.out.println(mylist2);

        //3. 关闭连接
        jedis.close();
    }
}

  运行test4,检查控制台输出结果

  

  3.4 集合类型set:不允许重复元素

    sadd key value

    smembers key:获取所有元素

    srem key value:删除set集合中的某个元素

package cn.itcast.jedis.test;

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

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

/**
 * Jedis测试类
 */
public class JedisTest {

    /**
     * set 数据结构操作
     */
    @Test
    public void test5(){
        //1. 获取连接
        Jedis jedis = new Jedis(); //如果使用空参构造,默认值"localhost",6379端口
        //2. 操作
        //存储
        jedis.sadd("myset", "java", "php", "c++");

        //获取
        Set<String> myset = jedis.smembers("myset");
        System.out.println(myset);

        //删除
        jedis.srem("myset","java","c++");

        //获取
        Set<String> myset2 = jedis.smembers("myset");
        System.out.println(myset2);

        //3. 关闭连接
        jedis.close();
    }
}

  运行test5,检查控制台输出结果

  

  3.5 有序集合类型sortedset:不允许重复元素,且元素有顺序

    zadd key score value

    zrange key start end [withscores]

    zrem key value

package cn.itcast.jedis.test;

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

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

/**
 * Jedis测试类
 */
public class JedisTest {

    /**
     * sortedset 数据结构操作
     */
    @Test
    public void test6(){
        //1. 获取连接
        Jedis jedis = new Jedis(); //如果使用空参构造,默认值"localhost",6379端口
        //2. 操作
        //存储
        jedis.zadd("mysortedset",3,"亚瑟");
        jedis.zadd("mysortedset",30,"后羿");
        jedis.zadd("mysortedset",25,"孙悟空");

        //获取
        Set<String> mysortedset = jedis.zrange("mysortedset", 0, -1);
        System.out.println(mysortedset);//会按照分数从小到大排序

        //删除
       jedis.zrem("mysortedset", "孙悟空","亚瑟");
        
       //获取
        Set<String> mysortedset2 = jedis.zrange("mysortedset", 0, -1);
        System.out.println(mysortedset2);

        //3. 关闭连接
        jedis.close();
    }
}

  运行test6,检查控制台输出结果

  

4. jedis连接池:JedisPool

  4.1使用

    1、创建JedisPool连接池对象

    2、调用方法getResource()方法获取Jedis连接

  4.2 连接池工具类

  4.3 

5. 案例

 

标签:java,redis4,redis13,redis,Jedis,key,import,jedis
来源: https://www.cnblogs.com/ajing2018/p/16241419.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有