jedis连接redis,测试操作redis常用的数据类型 String List Set Hash Zset

编码测试

1) 连接数据库

2) 操作命令

3) 断开连接

package com.zyq.practise;

import redis.clients.jedis.Jedis;

/**
 * Created by yyyy on 2025/9/16.
 */
public class TestPassWord {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        //如果redis有设置密码,则加上,没有这行代码去掉
//        jedis.auth("79797979");
        jedis.connect();
        jedis.disconnect();
        System.out.println("=========="+jedis.flushDB());

    }
}

运行结果:

==========OK

常用的api

package com.zyq.key;

import redis.clients.jedis.Jedis;

import java.util.Set;

/**
 * Created by yyy on 2020/9/15.
 */
public class TestKey {
    public static void main(String[] args) {
        //连接redis
        Jedis jedis = new Jedis("127.0.0.1", 6379);

        System.out.println("清空当前数据库:"+jedis.flushDB());
        System.out.println("判断某个键是否存在:"+jedis.exists("username"));
        System.out.println("新增username--yyy的键值对:"+jedis.set("username","yyy"));
        System.out.println("新增password--111的键值对:"+jedis.set("password","111"));
        System.out.println("新增hobby--running的键值对:"+jedis.set("hobby","running"));
        System.out.println("返回当前数据库中key的数目:"+jedis.dbSize());
        System.out.println("现在系统中所有的键如下:");
        Set<String> keys = jedis.keys("*");
        System.out.println(keys);

        System.out.println("删除键password:"+jedis.del("password"));
        System.out.println("删除键password是否存在:"+jedis.exists("password"));
        System.out.println("查看键username的数据类型:"+jedis.type("username"));
        System.out.println("随机返回key空间的一个:"+jedis.randomKey());

        System.out.println("重命名key:"+jedis.rename("username","name"));
        System.out.println("取出修改后的name的值:"+jedis.get("name"));
        System.out.println("按索引查询:"+jedis.select(0));
        System.out.println("清空当前数据库:"+jedis.flushDB());
        System.out.println("返回当前数据库中key的数目:"+jedis.dbSize());
        System.out.println("删除所有数据库中的key:"+jedis.flushAll());


    }
} 

运行结果:

清空当前数据库:OK

判断某个键是否存在:false

新增username--yyy的键值对:OK

新增password--111的键值对:OK

新增hobby--running的键值对:OK

返回当前数据库中key的数目:3

现在系统中所有的键如下:

[password, hobby, username]

删除键password:1

删除键password是否存在:false

查看键username的数据类型:string

随机返回key空间的一个:username

重命名key:OK

取出修改后的name的值:yyy

按索引查询:OK

清空当前数据库:OK

返回当前数据库中key的数目:0

删除所有数据库中的key:OK

String类型练习:

package com.zyq.practise;

import redis.clients.jedis.Jedis;

import java.util.concurrent.TimeUnit;

/**
 * Created by yyy on 2020/9/16.
 */
public class TestString {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.flushDB();
        System.out.println("===========================");
        System.out.println("添加key1--value1键值对:" + jedis.set("key1", "value1"));
        System.out.println("添加key2--value2键值对:" + jedis.set("key2", "value2"));
        System.out.println("添加key3--value3键值对:" + jedis.set("key3", "value3"));
        System.out.println("删除键key2:" + jedis.del("key2"));
        System.out.println("获取键key2:" + jedis.get("key2"));
        System.out.println("获取键key1:" + jedis.get("key1"));
        System.out.println("修改key1的值:" + jedis.set("key1", "value1Changed"));
        System.out.println("获取键key1:" + jedis.get("key1"));
        System.out.println("在key3后面加入值:" + jedis.append("key3", "end"));
        System.out.println("获取key3的值:" + jedis.get("key3"));
        System.out.println("增加多个键值对:" + jedis.mset("key01", "value01", "key02", "value02", "key03", "value03"));
        System.out.println("批量获取多个键值对:" + jedis.mget("key01","key02", "key03"));
        System.out.println("批量获取多个键值对:" + jedis.mget("key01","key02", "key03","key04"));
        System.out.println("删除多个键值对:"+jedis.del("key01","key02"));
        System.out.println("获取多个键值对:"+jedis.mget("key01","key02","key03"));

        System.out.println("=============清空当前数据库===============");
        System.out.println("新增键值对防止覆盖原先值");
        System.out.println("添加key1--value1键值对:" + jedis.set("key1", "value1"));
        System.out.println("添加key2--value2键值对:" + jedis.set("key2", "value2"));
        System.out.println("添加key2--value2new键值对:" + jedis.set("key2", "value2new"));
        System.out.println("获取key1的值:"+jedis.get("key1"));
        System.out.println("获取key2的值:"+jedis.get("key2"));

        System.out.println("===========新增键值对并设置有效时间==============");
        System.out.println("添加key3--value3键值对,并设置过期时间是2秒:"+jedis.setex("key3",2,"value3"));
        System.out.println("获取key3的值:"+jedis.get("key3"));
        try {
            TimeUnit.SECONDS.sleep(3);
        }catch (InterruptedException ex){
            ex.printStackTrace();
        }
        System.out.println("获取key3的值:"+jedis.get("key3"));

        System.out.println("======获取原值,更新为新值========");
        System.out.println("获取原值,并设置新值:"+jedis.getSet("key2","key2getset"));
        System.out.println("获取key2的值:"+jedis.get("key2"));
        System.out.println("获取key2的值的截取字符串:"+jedis.getrange("key2",2,4));


    }

}

 

运行结果:

===========================

添加key1--value1键值对:OK

添加key2--value2键值对:OK

添加key3--value3键值对:OK

删除键key2:1

获取键key2:null

获取键key1:value1

修改key1的值:OK

获取键key1:value1Changed

在key3后面加入值:9

获取key3的值:value3end

增加多个键值对:OK

批量获取多个键值对:[value01, value02, value03]

批量获取多个键值对:[value01, value02, value03, null]

删除多个键值对:2

获取多个键值对:[null, null, value03]

=============清空当前数据库===============

新增键值对防止覆盖原先值

添加key1--value1键值对:OK

添加key2--value2键值对:OK

添加key2--value2new键值对:OK

获取key1的值:value1

获取key2的值:value2new

===========新增键值对并设置有效时间==============

添加key3--value3键值对,并设置过期时间是2秒:OK

获取key3的值:value3

获取key3的值:null

======获取原值,更新为新值========

获取原值,并设置新值:value2new

获取key2的值:key2getset

获取key2的值的截取字符串:y2g

List集合:

package com.zyq.practise;

import redis.clients.jedis.Jedis;

/**
 * Created by ZhaoYongqiang on 2020/9/16.
 */
public class TestList {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.flushDB();
        System.out.println("添加一个list");
        jedis.lpush("collections","ArrayList","Vector","Stack","HashMap","WeakHashMap","LinkedHashMap");
        jedis.lpush("collections","HashSet");
        jedis.lpush("collections","TreeSet");
        jedis.lpush("collections","TreeMap");
        System.out.println("collections集合的内容:"+jedis.lrange("collections",0,-1));
        System.out.println("collections区间0-3区间之外的元素:"+jedis.lrange("collections",0,3));

        System.out.println("============================");
        //删除列表中指定的值,第二个参数为删除的个数(有重复时),后add进去的值先被删除,类似于出栈
        System.out.println("删除指定元素个数:"+jedis.lrem("collections",2,"HashMap"));
        System.out.println("collections集合中内容:"+jedis.lrange("collections",0,-1));
        System.out.println("删除下标0-3区间之外的元素:"+jedis.ltrim("collections",0,3));
        System.out.println("collections集合中内容:"+jedis.lrange("collections",0,-1));
        System.out.println("collections列表出栈(左端):"+jedis.lpop("collection"));
        System.out.println("collections集合中内容:"+jedis.lrange("collections",0,-1));
        System.out.println("collections添加元素,从列表右端:"+jedis.rpush("collections","EnumMap"));
        System.out.println("collections集合中内容:"+jedis.lrange("collections",0,-1));
        System.out.println("collections列表出栈(右端):"+jedis.rpop("collection"));
        System.out.println("collections集合中内容:"+jedis.lrange("collections",0,-1));
        System.out.println("修改collections指定下标元素的内容:"+jedis.lset("collections",1,"LinkedArrayList"));
        System.out.println("collections集合中内容:"+jedis.lrange("collections",0,-1));
        System.out.println("================================");
        System.out.println("collection的长度:"+jedis.llen("collections"));
        System.out.println("获取collections下标为2的元素:"+jedis.lindex("collections",2));
        System.out.println("================================");
        System.out.println("添加一个集合元素:"+jedis.lpush("sortedList","3","6","2","0","7","4"));
        System.out.println("sortedLIst排序前:"+jedis.lrange("sortedList",0,-1));
        System.out.println(jedis.sort("sortedList"));
        System.out.println("sortedList排序后:"+jedis.lrange("sortedList",0,-1));


    }
}

运行结果:

添加一个list

collections集合的内容:[TreeMap, TreeSet, HashSet, LinkedHashMap, WeakHashMap, HashMap, Stack, Vector, ArrayList]

collections区间0-3区间之外的元素:[TreeMap, TreeSet, HashSet, LinkedHashMap]

============================

删除指定元素个数:1

collections集合中内容:[TreeMap, TreeSet, HashSet, LinkedHashMap, WeakHashMap, Stack, Vector, ArrayList]

删除下标0-3区间之外的元素:OK

collections集合中内容:[TreeMap, TreeSet, HashSet, LinkedHashMap]

collections列表出栈(左端):null

collections集合中内容:[TreeMap, TreeSet, HashSet, LinkedHashMap]

collections添加元素,从列表右端:5

collections集合中内容:[TreeMap, TreeSet, HashSet, LinkedHashMap, EnumMap]

collections列表出栈(右端):null

collections集合中内容:[TreeMap, TreeSet, HashSet, LinkedHashMap, EnumMap]

修改collections指定下标元素的内容:OK

collections集合中内容:[TreeMap, LinkedArrayList, HashSet, LinkedHashMap, EnumMap]

================================

collection的长度:5

获取collections下标为2的元素:HashSet

================================

添加一个集合元素:6

sortedLIst排序前:[4, 7, 0, 2, 6, 3]

[0, 2, 3, 4, 6, 7]

sortedList排序后:[4, 7, 0, 2, 6, 3]

Set集合:

package com.zyq.practise;

import redis.clients.jedis.Jedis;

/**
 * Created by yyy on 2020/9/16.
 */
public class TestSet {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.flushDB();
        System.out.println("========向集合中添加元素(不重复)=================");
        System.out.println(jedis.sadd("eleSet","e1","e2","e4","e3","e0","e8","e7","e5"));
        System.out.println(jedis.sadd("eleSet","e6"));
        System.out.println(jedis.sadd("eleSet","e6"));
        System.out.println("eleSet的所有元素为:"+jedis.smembers("eleSet"));
        System.out.println("删除一个元素e0:"+jedis.srem("eleSet","e0"));
        System.out.println("eleSet的所有元素为:"+jedis.smembers("eleSet"));
        System.out.println("删除两个元素e7和e6:"+jedis.srem("eleSet","e6","e7"));
        System.out.println("eleSet的所有元素为:"+jedis.smembers("eleSet"));
        System.out.println("随机的移除集合中的一个元素:"+jedis.spop("eleSet"));
        System.out.println("随机的移除集合中的一个元素:"+jedis.spop("eleSet"));
        System.out.println("eleSet的所有元素为:"+jedis.smembers("eleSet"));
        System.out.println("eleSet中包含元素的个数:"+jedis.scard("eleSet"));
        System.out.println("eleSet中是否存在e1元素:"+jedis.sismember("eleSet","e1"));
        System.out.println("eleSet中是否存在e3元素:"+jedis.sismember("eleSet","e3"));
        System.out.println("================================");
        System.out.println(jedis.sadd("eleSet1","e1","e2","e4","e3","e0","e8","e7","e5"));
        System.out.println(jedis.sadd("eleSet2","e1","e2","e4","e3","e0","e8"));
        System.out.println("将eleSet1中删除e1并存入到eleSet3中:"+jedis.smove("eleSet1","eleSet3","e1"));
        System.out.println("将eleSet1中删除e2并存入到eleSet3中:"+jedis.smove("eleSet1","eleSet3","e2"));
        System.out.println("eleSet1的所有元素为:"+jedis.smembers("eleSet1"));
        System.out.println("eleSet3的所有元素为:"+jedis.smembers("eleSet3"));
        System.out.println("===============集合运算==============");
        System.out.println("eleSet1中的元素:"+jedis.smembers("eleSet1"));
        System.out.println("eleSet2中元素:"+jedis.smembers("eleSet2"));
        System.out.println("eleSet1和eleSet2的交集:"+jedis.sinter("eleSet1","eleSet2"));
        System.out.println("eleSet1和eleSet2的并集:"+jedis.sunion("eleSet1","eleSet2"));
        System.out.println("eleSet1和eleSet2的交集:"+jedis.sdiff("eleSet1","eleSet2"));
        System.out.println(jedis.sinterstore("eleSet4","eleSet1","eleSet2"));//将集合1和集合2的交集保存到集合4中
        System.out.println("eleSet4中的元素:"+jedis.smembers("eleSet4"));



    }
}

运行结果:

========向集合中添加元素(不重复)=================

8

1

0

eleSet的所有元素为:[e0, e1, e4, e8, e2, e3, e5, e6, e7]

删除一个元素e0:1

eleSet的所有元素为:[e1, e4, e8, e2, e3, e5, e6, e7]

删除两个元素e7和e6:2

eleSet的所有元素为:[e2, e3, e5, e1, e8, e4]

随机的移除集合中的一个元素:e3

随机的移除集合中的一个元素:e1

eleSet的所有元素为:[e5, e8, e4, e2]

eleSet中包含元素的个数:4

eleSet中是否存在e1元素:false

eleSet中是否存在e3元素:false

================================

8

6

将eleSet1中删除e1并存入到eleSet3中:1

将eleSet1中删除e2并存入到eleSet3中:1

eleSet1的所有元素为:[e5, e7, e0, e4, e8, e3]

eleSet3的所有元素为:[e1, e2]

===============集合运算==============

eleSet1中的元素:[e5, e7, e0, e4, e8, e3]

eleSet2中元素:[e4, e3, e2, e0, e1, e8]

eleSet1和eleSet2的交集:[e4, e3, e0, e8]

eleSet1和eleSet2的并集:[e5, e7, e0, e1, e4, e8, e2, e3]

eleSet1和eleSet2的交集:[e7, e5]

4

eleSet4中的元素:[e0, e8, e4, e3]

Hash数据类型的练习:

package com.zyq.practise;

import redis.clients.jedis.Jedis;

import java.util.HashMap;

/**
 * Created by yyyyy on 2020/9/16.
 */
public class TestHash {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.flushDB();
        HashMap<String, String> map = new HashMap<String, String>();
        map.put("key1","value1");
        map.put("key2","value2");
        map.put("key3","value3");
        map.put("key4","value4");
        //添加名称为hash的hash元素
        jedis.hmset("hash",map);
        //像名称为hash的hash中添加key为key5,value为value5的元素
        jedis.hset("hash","key5","value5");
        System.out.println("散列hash的所有键值对为:"+jedis.hgetAll("hash"));
        System.out.println("散列hash的所有键为:"+jedis.hkeys("hash"));
        System.out.println("散列hash的所有值为:"+jedis.hvals("hash"));
        System.out.println("将key6保存的值加上一个整数,如果key6不存在则添加key6:"+jedis.hincrBy("hash","key6",6));
        System.out.println("散列hash的所有键值对为:"+jedis.hgetAll("hash"));
        System.out.println("删除一个或者多个键值对:"+jedis.hdel("hash","key2"));
        System.out.println("散列hash的所有键值对为:"+jedis.hgetAll("hash"));
        System.out.println("散列hash中键值对的个数:"+jedis.hlen("hash"));
        System.out.println("判断hash中是否存在key2:"+jedis.hexists("hash","key2"));
        System.out.println("判断hash中是否存在key3:"+jedis.hexists("hash","key3"));
        System.out.println("获取hash中的值:"+jedis.hmget("hash","key3"));
        System.out.println("获取hash中的值:"+jedis.hmget("hash","key3","key4"));

    }
}

运行结果:

散列hash的所有键值对为:{key1=value1, key2=value2, key5=value5, key3=value3, key4=value4}

散列hash的所有键为:[key1, key2, key5, key3, key4]

散列hash的所有值为:[value3, value2, value4, value1, value5]

将key6保存的值加上一个整数,如果key6不存在则添加key6:6

散列hash的所有键值对为:{key1=value1, key2=value2, key5=value5, key6=6, key3=value3, key4=value4}

删除一个或者多个键值对:1

散列hash的所有键值对为:{key1=value1, key5=value5, key6=6, key3=value3, key4=value4}

散列hash中键值对的个数:5

判断hash中是否存在key2:false

判断hash中是否存在key3:true

获取hash中的值:[value3]

获取hash中的值:[value3, value4]

posted on 2020-10-03 11:03  ~码铃薯~  阅读(326)  评论(0编辑  收藏  举报

导航