• redis13_Jedis代码操作redis4


    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,检查控制台输出结果

      

  • 相关阅读:
    禁止ios默认拉动弹性行为
    javascript 网页图标音乐切换
    js常用 禁止F5 和右键
    弹窗插件
    手机时间选择插件 Jquery
    Jquery获取背景图片src路径
    Arduino 数字函数总结
    Arduino 开关控制小灯持续亮之具体思路
    C语言流控制命令的总结
    C++Primer 第四章 表达式
  • 原文地址:https://www.cnblogs.com/ajing2018/p/16241419.html
Copyright © 2020-2023  润新知