zoukankan      html  css  js  c++  java
  • Redis JAVA客户端 Jedis常用方法

    Jedis 是 Redis 官方首选的 Java 客户端开发包 (redis的java版本的客户端实现)

    #MAVEN配置

    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
    </dependency>

    #JAVA代码

    package yyl.example.demo.redis;
    import java.util.HashMap;
    import java.util.Map;
    import redis.clients.jedis.Jedis;
    
    /**
     * Jedis 常用方法用法
     */
    public class JedisTest {
    
        public static void main(String[] args) {
            Jedis jedis = new Jedis("localhost", 6379);
            //jedis.auth("admin");
    
            testString(jedis);
            testHash(jedis);
            testList(jedis);
            testSet(jedis);
            testZSet(jedis);
    
            testCommands(jedis);
    
            jedis.disconnect();
        }
    
        /** 字符串 */
        private static void testString(Jedis jedis) {
    
            System.out.println("#string:");
    
            //# SET key "hello"
            System.out.println("> SET key "hello"");
            System.out.println(jedis.set("key", "hello"));
    
            //# GET key
            System.out.println("> GET key");
            System.out.println(jedis.get("key"));
    
            System.out.println("> APPEND key " world"");
            System.out.println(jedis.append("key", " world")); //拼接
            System.out.println("> GET key");
            System.out.println(jedis.get("key"));
    
            //删除某个键  #DEL key [key ...] 
            System.out.println("> DEL key");
            System.out.println(jedis.del("key")); //删除某个键
            System.out.println("> GET key");
            System.out.println(jedis.get("key"));
    
            //设置多个键值
            //#MSET key1 "Hello" key2 "World"
            System.out.println("> MSET key1 "Hello" key2 "World"");
            System.out.println(jedis.mset("key1", "hello", "key2", "World"));
    
            System.out.println("> GET key1");
            System.out.println(jedis.get("key1"));
            System.out.println("> GET key2");
            System.out.println(jedis.get("key2"));
    
            //删除一组键  #DEL key1 key2 
            System.out.println("> DEL key1 key2");
            System.out.println(jedis.del("key1", "key2"));
            System.out.println(jedis.get("key2"));
    
            System.out.println("
    ");
        }
    
        /** 哈希 */
        private static void testHash(Jedis jedis) {
    
            System.out.println("#hash:");
    
            System.out.println("> HMSET myhash field1 "Hello" field2 "World"");
            Map<String, String> map = new HashMap<String, String>();
            map.put("field1", "Hello");
            map.put("field2", "World");
            System.out.println(jedis.hmset("myhash", map));
    
            System.out.println("> HMGET myhash field1 field2");
            System.out.println(jedis.hmget("myhash", "field1", "field2"));
    
            //返回 key 指定的哈希集中所有的字段和值。
            System.out.println("> HGETALL myhash");
            System.out.println(jedis.hgetAll("myhash"));
    
            //删除map中的某个键值  
            System.out.println("> HDEL myhash field1");
            System.out.println(jedis.hdel("myhash", "field1"));
            System.out.println("> HDEL myhash field1");
            System.out.println(jedis.hdel("myhash", "field1"));
    
            //返回 key 指定的哈希集包含的字段的数量
            System.out.println("> HLEN myhash");
            System.out.println(jedis.hlen("myhash"));
    
            //设置 key 指定的哈希集中指定字段的值
            System.out.println("> HSET myhash field1 "Hello"");
            System.out.println(jedis.hset("myhash", "field1", "Hello"));
            System.out.println("> HGET myhash field1");
            System.out.println(jedis.hget("myhash", "field1"));
    
            //返回指定的哈希集中所有字段的名字
            System.out.println("> HKEYS myhash");
            System.out.println(jedis.hkeys("myhash"));
    
            //移除哈希
            jedis.del("myhash");
            System.out.println("
    ");
        }
    
        /** 列表 */
        private static void testList(Jedis jedis) {
    
            System.out.println("#list:");
    
            //将所有指定的值插入到存于 key 的列表的头部
            //如果 key 不存在,那么在进行 push 操作前会创建一个空列表
            //如果 key 对应的值不是一个 list 的话,那么会抛出异常
            System.out.println("> HKEYS myhash");
            System.out.println(jedis.lpush("mylist", "hello"));
            System.out.println(jedis.lpush("mylist", "world"));
    
            //返回存储在列表里指定范围内的元素
            //(偏移量也可以是负数,表示偏移量是从list尾部开始计数。 例如, -1 表示列表的最后一个元素,-2 是倒数第二个,以此类推)
            System.out.println(">  LRANGE mylist 0 -1");
            System.out.println(jedis.lrange("mylist", 0, -1));
    
            System.out.println("> DEL mylist");
            System.out.println(jedis.del("mylist"));
    
            //向存于 key 的列表的尾部插入所有指定的值
            System.out.println("> RPUSH mylist "1" "2" "3" "4" "5"");
            System.out.println(jedis.rpush("mylist", "1", "2", "3", "4", "5"));
    
            //移除并且返回list的第一个元素
            System.out.println("> LPOP mylist");
            System.out.println(jedis.lpop("mylist"));
            System.out.println("> LPOP mylist");
            System.out.println(jedis.lpop("mylist"));
    
            //返回存储在 key 里的list的长度
            System.out.println("> LLEN mylist");
            System.out.println(jedis.llen("mylist"));
    
            //移除列表
            jedis.del("mylist");
            System.out.println("
    ");
        }
    
        /** 集合 */
        private static void testSet(Jedis jedis) {
    
            System.out.println("#set:");
    
            //添加元素
            System.out.println("> SADD myset "Hello"");
            System.out.println(jedis.sadd("myset", "Hello"));
            System.out.println("> SADD myset "World"");
            System.out.println(jedis.sadd("myset", "World"));
            System.out.println("> SADD myset "World"");
            System.out.println(jedis.sadd("myset", "World"));
    
            //获取集合成员(元素)
            System.out.println("> SMEMBERS myset");
            System.out.println(jedis.smembers("myset"));
    
            //移除集合
            jedis.del("myset");
            System.out.println("
    ");
        }
    
        /** 有序集合 */
        private static void testZSet(Jedis jedis) {
            System.out.println("#zset:");
    
            System.out.println("> ZADD myzset 3 "three"");
            System.out.println(jedis.zadd("myzset", 3, "three"));
    
            System.out.println("> ZADD myzset 1 "two"");
            System.out.println(jedis.zadd("myzset", 2, "two"));
    
            System.out.println("> ZADD myzset 1 "one" 1 "uno"");
            Map<String, Double> scoreMembers = new HashMap<>();
            scoreMembers.put("one", 1D);
            scoreMembers.put("uno", 1D);
            System.out.println(jedis.zadd("myzset", scoreMembers));
    
            System.out.println("> ZRANGE myzset 0 -1");
            System.out.println(jedis.zrange("myzset", 0, -1));
    
            //移除集合
            jedis.del("myzset");
            System.out.println("
    ");
        }
    
        /** 其他常用操作 */
        private static void testCommands(Jedis jedis) {
    
            System.out.println("#COMMANDS:");
    
            //# 返回key所存储的value的数据结构类型
            System.out.println("> SET key1 "value"");
            System.out.println(jedis.set("key1", "value"));
            System.out.println("> HSET key2 field "value"");
            System.out.println(jedis.hset("key2", "field", "value"));
            System.out.println("> LPUSH key3 "value"");
            System.out.println(jedis.lpush("key3", "value"));
            System.out.println("> SADD key4 "value"");
            System.out.println(jedis.sadd("key4", "value"));
            System.out.println("> ZADD key5 "value"");
            System.out.println(jedis.zadd("key5", 0, "value"));
    
            //type可以返回string, list, set, zset , hash, none 等不同的类型。
            System.out.println("> TYPE key1");
            System.out.println(jedis.type("key1"));
            System.out.println("> TYPE key2");
            System.out.println(jedis.type("key2"));
            System.out.println("> TYPE key3");
            System.out.println(jedis.type("key3"));
            System.out.println("> TYPE key4");
            System.out.println(jedis.type("key4"));
            System.out.println("> TYPE key5");
            System.out.println(jedis.type("key5"));
            System.out.println("> TYPE key6");
            System.out.println(jedis.type("key6"));//不存在时返回none
    
            System.out.println("
    ");
            //设置超时时间
            System.out.println("> SET mykey "hello"");
            System.out.println(jedis.set("mykey", "hello"));
    
            //设置超时时间(单位:秒)
            System.out.println("> EXPIRE mykey 2 ");
            System.out.println(jedis.expire("mykey", 2));//[EXPIRE key seconds]
    
            //返回key剩余的过期时间(单位:秒)
            System.out.println("> TTL mykey ");
            System.out.println(jedis.ttl("mykey"));
    
            //返回key剩余的过期时间(单位:毫秒)
            System.out.println("> PTTL mykey ");
            System.out.println(jedis.pttl("mykey"));
    
            System.out.println("> EXISTS mykey ");
            System.out.println(jedis.exists("mykey"));
    
            System.out.println("# sleep 2000 Millisecond!");
            try {
                Thread.sleep(2 * 1000);
            } catch (InterruptedException e) {
            }
    
            System.out.println("> EXISTS mykey ");
            System.out.println(jedis.exists("mykey"));
    
            //移除
            jedis.del("mykey", "key1", "key2", "key3", "key4", "key5");
            System.out.println("
    ");
        }
    }
  • 相关阅读:
    干将莫邪
    Rancher
    Rancher 1.6 版本 只能在 linux 下用
    野蛮人大作战
    Oracle
    Gradle
    正则表达式 我遇到的
    Redis
    NestJS 用TypeScript开发 nodeJS后端
    Koa2
  • 原文地址:https://www.cnblogs.com/relucent/p/6694427.html
Copyright © 2011-2022 走看看