Java使用Jedis操作Redis的5种数据类型 您所在的位置:网站首页 如何查询redis里的数据类型 Java使用Jedis操作Redis的5种数据类型

Java使用Jedis操作Redis的5种数据类型

#Java使用Jedis操作Redis的5种数据类型| 来源: 网络整理| 查看: 265

1、Java使用Jedis客户端

Jedis集成了Redis的相关命令操作,它是Java语言操作Redis数据库的桥梁。Jedis客户端封装了Redis数据库的大量命令,因此具有许多Redis操作API。可以阅读 《Jedis API 文档》。

1.1 Jedis的获取

在使用Jedis之前,需要下载Jedis的相关JAR包。如果项目采用的是Maven环境,则需要在pom.xml文件中引入Jedis的配置,配置如下:

redis.clients jedis 3.3.0 1.2 Jedis的使用

【示例】使用Jedis来连接Redis数据库。

import redis.clients.jedis.Jedis; /** * 连接Redis服务 * @author pan_junbiao */ @Test public void connectJedis() { //创建Jedis实例,连接本地Redis服务 Jedis jedis = new Jedis("127.0.0.1", 6379); System.out.println("Redis服务器连接成功!"); //查看服务是否正在运行 System.out.println("服务正在运行:" + jedis.ping()); }

执行结果:

表示使用Jedis已经成功连接了Reids数据库。

1.3 Jedis常用API

Jedis常用API的使用,比如,为Redis数据库设置密码、获取客户端信息、查看Redis信息、清空数据库、以及获取数据库中的键的数量、数据库名字、服务器时间等,代码如下:

/** * Jeids API的操作 * @author pan_junbiao */ @Test public void jedisAPITest() { //创建Jedis实例,连接本地Redis服务 Jedis jedis = new Jedis("127.0.0.1", 6379); //设置Redis数据库的密码 System.out.println(jedis.auth("123456")); //获取客户端信息 System.out.println(jedis.getClient()); //清空Redis数据库,相当于执行FLUSHALL命令 System.out.println(jedis.flushAll()); //查看Redis信息,相当于执行INFO命令 System.out.println(jedis.info()); //获取数据库中key的数量,相当于指定DBSIZE命令 System.out.println(jedis.dbSize()); //获取数据库名字 System.out.println(jedis.getDB()); //返回当前Redis服务器的时间,相当于执行TIME命令 System.out.println(jedis.time()); }

执行结果:

运行之后,部分效果如下图:

 

2、Jedis操作Redis的数据类型

Jedis操作Redis的String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Sorted Set(有序集合)等相关命令的用法。

2.1 字符串(String)

【示例】Redis的字符串(String)类型相关命令的用法,以及Redis键命令的用法。

/** * 获取Reids连接 * @author pan_junbiao */ public Jedis getJedis() { //连接Redis服务器 Jedis jedis = new Jedis("127.0.0.1", 6379); System.out.println("Redis服务器连接成功!"); return jedis; } /** * Reids的Key类型 * @author pan_junbiao */ @Test public void redisKey() { Jedis jedis = getJedis(); jedis.set("myKey", "pan_junbiao的博客"); System.out.println("判断键为myKey的值是否存在:" + jedis.exists("myKey")); System.out.println("获取键为myKey的值:" + jedis.get("myKey")); System.out.println("查看键为myKey的类型:" + jedis.type("myKey")); System.out.println("随机获取一个Key:" + jedis.randomKey()); System.out.println("将键myKey重命名为myKey1:" + jedis.rename("myKey", "myKey1")); System.out.println("删除键为myKey1:" + jedis.del("myKey1")); } /** * Reids的String类型 * @author pan_junbiao */ @Test public void redisString() { Jedis jedis = getJedis(); System.out.println("设置userName:" + jedis.set("userName", "pan_junbiao的博客")); System.out.println("设置blogUrl:" + jedis.set("blogUrl", "https://blog.csdn.net/pan_junbiao")); System.out.println("设置blogRemark:" + jedis.set("blogRemark", "您好,欢迎访问 pan_junbiao的博客")); System.out.println("用户名称:" + jedis.get("userName")); System.out.println("博客地址:" + jedis.get("blogUrl")); System.out.println("博客信息:" + jedis.get("blogRemark")); System.out.println("设置userName,如果存在返回0:" + jedis.setnx("userName", "pan_junbiao的博客")); System.out.println("设置userName2:" + jedis.set("userName2", "pan_junbiao")); System.out.println("获取key为userName和userName2的值:"+jedis.mget("userName","userName2")); System.out.println("自增1:" + jedis.incr("index")); System.out.println("自增1:" + jedis.incr("index")); System.out.println("自增2:" + jedis.incrBy("count",2)); System.out.println("自增2:" + jedis.incrBy("count",2)); System.out.println("递减1:" + jedis.decr("count")); System.out.println("递减2:" + jedis.decrBy("count",2)); System.out.println("在userName2后面添加String:" + jedis.append("userName2","的博客")); System.out.println("获取key为userName2的值:" + jedis.get("userName2")); }

执行结果:

(1)Reids的Key类型的用法:

(2)Reids的String类型的用法:

 

2.2 列表(List)

【示例】Redis的列表(List)相关命令的用法。

/** * Reids的List类型 * @author pan_junbiao */ @Test public void redisList() { Jedis jedis = getJedis(); //在列表的尾部添加数据 jedis.rpush("userList", "pan_junbiao的博客", "https://blog.csdn.net/pan_junbiao", "pan_junbiao的博客", "深圳市"); //返回列表长度 System.out.println("列表长度:" + jedis.llen("userList")); //移除一个元素 System.out.println("移除一个元素:" + jedis.lrem("userList", 1, "深圳市")); //修改值 System.out.println("修改元素值:" + jedis.lset("userList", 2, "您好,欢迎访问 pan_junbiao的博客")); //取值 List list = jedis.lrange("userList", 0, -1); for (String str : list) { System.out.println(str); } //删除列表 System.out.println("删除列表:" + jedis.del("userList")); }

执行结果:

 

2.3 集合(Set)

【示例】Redis的集合(Set)相关命令的用法。

/** * Reids的Set类型 * @author pan_junbiao */ @Test public void redisSet() { Jedis jedis = getJedis(); jedis.sadd("city", "北京", "上海", "广州", "深圳", "昆明", "武汉", "大理"); System.out.println("移除并返回集合中的一个随机元素:" + jedis.spop("city")); System.out.println("随机取出一个值:" + jedis.srandmember("city")); //移除集合中的一个或多个成员元素 System.out.println("移除集合元素:" + jedis.srem("city", "北京")); //返回集合中所有元素 System.out.println(jedis.smembers("city")); //判断元素是否存在 System.out.println("判断深圳是否存在集合中:" + jedis.sismember("city","深圳")); //返回集合中元素的数量 System.out.println("集合中元素的数量:" + jedis.scard("city")); jedis.sadd("city2","昆明","香港","澳门","台湾","上海","北京","成都"); System.out.println("交集:" + jedis.sinter("city","city2")); System.out.println("并集:" + jedis.sunion("city","city2")); System.out.println("差集:" + jedis.sdiff("city","city2")); }

执行结果:

 

2.4 哈希(Hash)

【示例】Redis的哈希(Hash)相关命令的用法。

/** * Reids的哈希(Hash)类型 * @author pan_junbiao */ @Test public void redisMap() { Jedis jedis = getJedis(); Map map = new HashMap(); map.put("userName","pan_junbiao的博客"); map.put("blogUrl","https://blog.csdn.net/pan_junbiao"); map.put("blogRemark","您好,欢迎访问 pan_junbiao的博客"); map.put("city","深圳"); jedis.hmset("userInfo",map); //删除map中的某个键值 System.out.println("删除map中的某个键值:" + jedis.hdel("userInfo","city")); //判断指定键值是否存在 System.out.println("判断指定键是否存在:" + jedis.exists("userInfo")); //返回map对象中的所有key System.out.println("返回map对象中的所有key:" + jedis.hkeys("userInfo")); //返回map对象中的所有value List list = jedis.hvals("userInfo"); for (String str : list) { System.out.println(str); } }

执行结果:

 

2.5 有序集合(Sorted Set)

【示例】Redis的有序集合(Sorted Set)相关命令的用法。

/** * Reids的有序集合(Sorted Set)类型 * @author pan_junbiao */ @Test public void redisSortedSet() { Jedis jedis = getJedis(); jedis.zadd("math-score", 100, "pan_junbiao的博客_01"); jedis.zadd("math-score", 82, "pan_junbiao的博客_02"); jedis.zadd("math-score", 80, "pan_junbiao的博客_03"); jedis.zadd("math-score", 55, "pan_junbiao的博客_04"); //为分数值加上增量 System.out.println(jedis.zincrby("math-score", 15, "pan_junbiao的博客_03")); System.out.println(jedis.zincrby("math-score", -5, "pan_junbiao的博客_04")); //返回有序集合中指定区间分数的成员数 System.out.println("分数在90至100的人数:" + jedis.zcount("math-score", 90, 100)); //获取在指定区间内的元素(升序) Set ascSet = jedis.zrange("math-score",0,-1); System.out.println("分数排名(从低到高):"); for(String str : ascSet) { System.out.println("用户名称:" + str + " 分数:" + jedis.zscore("math-score",str)); } //获取在指定区间内的元素(降序) Set descSet = jedis.zrevrange("math-score",0,-1); System.out.println("分数排名(从高到低):"); for(String str : descSet) { System.out.println("用户名称:" + str + " 分数:" + jedis.zscore("math-score",str)); } }

执行结果:

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有