搜索
首页数据库Redis怎么使用Java来操作Redis数据库

Redis 是一个基于内存的数据库,与 Redis 进行交互,能够极大地提高运行的速度。

首先让我们创建一个普通的Maven工程,添加相应的依赖

<dependencies>
		<dependency>
		    <groupId>redis.clients</groupId>
		    <artifactId>jedis</artifactId>
		    <version>3.3.0</version>
		</dependency>
		
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.72</version>
		</dependency>
  </dependencies>

然后我们就可以是使用了

测试连接(这里我用的是本地的reids服务)

//定义主机号、端口号
		HostAndPort hostAndPort = new HostAndPort("127.0.0.1",6379);
		//连接redis服务
		Jedis jedis=new Jedis(hostAndPort);
		//ping一下
		System.out.println("服务正在运行: "+jedis.ping())
		//关闭
		jedis.close();
控制台输出PONG代表连接成功

接下来让我们看看Redis的五大数据类型的基础操作

  • String类型

System.out.println("存入一个数据:"+jedis.set("age", "20"));
		System.out.println("存入多个数据:"+jedis.mset("name","zhangsan","sex","男"));
		
		System.out.println("获取一个数据:"+jedis.get("age"));
		System.out.println("获取多个数据:"+jedis.mget("name","sex"));
		
		System.out.println("将指定的字符串拼接在指定数据之后:"+jedis.append("name",",你好"));
		
		System.out.println("查看某个数据的长度:"+jedis.strlen("name"));
		
		System.out.println("修改某个数据的值并返回修改之前的值:"+jedis.getSet("name", "lisi"));
		
		System.out.println("判断某个数据是否存在:"+jedis.exists("name"));
		
		System.out.println("为某个数据设置失效时间(单位/s):"+jedis.expire("name", 20));
		
		System.out.println("查看某个数据的剩余生存时间(s):"+jedis.ttl("name"));
		
		System.out.println("删除一个或多个数据:"+jedis.del("name","sex"));

查看打印结果

  • Set类型

System.out.println("向集合添加一个或多个元素:"+jedis.sadd("key1", "v1","v2","v3"));
		
		System.out.println("获取集合的元素个数:"+jedis.scard("key1"));
		
		System.out.println("返回集合中的所有元素:"+jedis.smembers("key1"));
		
		System.out.println("判断指定元素是否存在集合中:"+jedis.sismember("key1", "v1"));
		
		System.out.println("移除集合中指定的元素:"+jedis.srem("key1", "v3"));
		
		//这里我们在创建一个集合
		System.out.println("向集合添加一个或多个元素:"+jedis.sadd("key2", "v2","v3","v4"));
		
		System.out.println("返回集合key1与key2的差集:"+jedis.sdiff("key1","key2"));
		System.out.println("返回集合key1与key2的交集:"+jedis.sinter("key1","key2"));
		System.out.println("返回集合key1与key2的并集:"+jedis.sunion("key1","key2"));

查看结果

  • Hash类型

	Map map=new HashMap<>();
		map.put("name", "zhangsan");
		map.put("age", "20");
		map.put("sex", "男");
		
		System.out.println("创建一个哈希表存储一个用户对象:"+jedis.hmset("user",map));
		
		System.out.println("获取哈希表中用户的name:"+jedis.hget("user", "name"));
		
		System.out.println("查看哈希表中,指定的字段是否存在:"+jedis.hexists("user", "name"));
		
		System.out.println("获取哈希表中字段的数量:"+jedis.hlen("user"));
		
		System.out.println("获取哈希表中所有字段:"+jedis.hkeys("user"));
		
		System.out.println("获取哈希表中所有字段的值:"+jedis.hvals("user"));
		
		System.out.println("获取在哈希表中的所有字段和值:"+jedis.hgetAll("user"));
		
		System.out.println("删除一个或多个哈希表字段:"+jedis.hdel("user","name","age","sex"));

查看结果

  • List类型

System.out.println("将一个值插入到列表头部(可以多个值):"+jedis.lpush("city","北京","上海"));
		
		
		System.out.println("将一个值插入到列表尾部(可以多个值):"+jedis.rpush("city","济南","南京"));
		
		
		System.out.println("获取列表指定范围内的元素:"+jedis.lrange("city", 0, -1));
		
		
		System.out.println("获取列表长度:"+jedis.llen("city"));
		
		
		System.out.println("移出列表的第一个元素,并输出值:"+jedis.lpop("city"));
		
		
		System.out.println("移除列表的最后一个元素,并输出值:"+jedis.rpop("city"));
		
		
		System.out.println("修改列表中指定索引位置元素的值:"+jedis.lset("city", 0, "西藏"));
		
		
		System.out.println("让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除:"+jedis.ltrim("city", 1, 2));

查看结果

  • Sorted Set类型

Map<String,Double> scoreMembers=new HashMap<>();
		scoreMembers.put("member1", 1D);
		scoreMembers.put("member2", 2D);
		scoreMembers.put("member3", 3D);
		
		System.out.println("向有序集合添加一个或多个元素,或者更新已存在元素的分数:"+jedis.zadd("member", scoreMembers));
		
		System.out.println("获取有序集合的元素个数:"+jedis.zcard("member"));
		
		System.out.println("计算在有序集合中指定区间([socre1,socre2])分数的成员数:"+jedis.zcount("member", 0D, 3D));
		
		System.out.println("通过索引区间返回有序集合指定区间内的元素,从低到高:"+jedis.zrange("member", 0,-1));
		
		System.out.println("返回索引区间返回有序集合指定区间内的元素,从高到低:"+jedis.zrevrange("member", 0,-1));
		
		System.out.println("返回有序集中指定元素的分数值:"+jedis.zscore("member", "member1"));
		
		System.out.println("移除有序集合中的一个或多个元素:"+jedis.zrem("member", "member1","member2"));
		
		System.out.println("返回有序集合中指定元素的索引:"+jedis.zrank("member", "member3"));

查看结果

最后我们简单看看如何操作数据库

	System.out.println("清空当前数据库:"+jedis.flushDB());
		
		System.out.println("清空所有数据库:"+jedis.flushAll());
		
		System.out.println("查看当前数据库存储数据的多少:"+jedis.dbSize());
		
		Set<String> keys = jedis.keys("*");
		System.out.println("查看当前数据库存储所有键值:"+keys);
		
		System.out.println("选择某个数据库:"+jedis.select(0));

查看结果

其实Redis还有三种特殊存储类型

  • Geospatial                                                                                 

主要用于存储地理位置信息,并对存储的信息进行操作,基于Sorts Set有序集合

  • HyperLogLog

是用来做基数统计的

  • Bitmap

通过操作二进制(0,1)来记录只有两种状态的信息

以上是怎么使用Java来操作Redis数据库的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:亿速云。如有侵权,请联系admin@php.cn删除
REDIS与数据库:性能比较REDIS与数据库:性能比较May 14, 2025 am 12:11 AM

Redisoutperformstraditionaldatabasesinspeedforread/writeOperationsDuetoitsin-memorynature,niletraditionalditionalditionalditationaldatabasesexcelcelincomplexqueriessanddaintegrity.1)redisisisisideSidealForrealForreal-timeanalyticsanticanticanticanticanticantic.2)

我什么时候应该使用redis代替传统数据库?我什么时候应该使用redis代替传统数据库?May 13, 2025 pm 04:01 PM

用户edisinsteadofatraditionaldatabasewhenyourapplicationrequirespeedandreal-timedataprocorsing,sueAsAsforCaching,sessionmanagement,orrereal-timeanalytics.redisexcelsin:1)caching,缓存,减少载荷载量

REDIS:超越SQL- NOSQL的观点REDIS:超越SQL- NOSQL的观点May 08, 2025 am 12:25 AM

Redis超越SQL数据库的原因在于其高性能和灵活性。1)Redis通过内存存储实现极快的读写速度。2)它支持多种数据结构,如列表和集合,适用于复杂数据处理。3)单线程模型简化开发,但高并发时可能成瓶颈。

REDIS:与传统数据库服务器的比较REDIS:与传统数据库服务器的比较May 07, 2025 am 12:09 AM

Redis在高并发和低延迟场景下优于传统数据库,但不适合复杂查询和事务处理。1.Redis使用内存存储,读写速度快,适合高并发和低延迟需求。2.传统数据库基于磁盘,支持复杂查询和事务处理,数据一致性和持久性强。3.Redis适用于作为传统数据库的补充或替代,但需根据具体业务需求选择。

REDIS:功能强大的内存数据存储的简介REDIS:功能强大的内存数据存储的简介May 06, 2025 am 12:08 AM

Redisisahigh-performancein-memorydatastructurestorethatexcelsinspeedandversatility.1)Itsupportsvariousdatastructureslikestrings,lists,andsets.2)Redisisanin-memorydatabasewithpersistenceoptions,ensuringfastperformanceanddatasafety.3)Itoffersatomicoper

Redis主要是数据库吗?Redis主要是数据库吗?May 05, 2025 am 12:07 AM

Redis主要是一个数据库,但它不仅仅是数据库。1.作为数据库,Redis支持持久化,适合高性能需求。2.作为缓存,Redis提升应用响应速度。3.作为消息代理,Redis支持发布-订阅模式,适用于实时通信。

REDIS:数据库,服务器还是其他?REDIS:数据库,服务器还是其他?May 04, 2025 am 12:08 AM

redisisamultifaceTedToolThatServesAsAdatabase,server和more.itfunctionsasanin-memorydatastrustore,supportsvariousDataStructures,and CanbeusedAsacache,MessageBroker,sessionStorage,sessionStorage,sessionstorage,andford forderibedibedlocking。

REDIS:揭示其目的和关键应用程序REDIS:揭示其目的和关键应用程序May 03, 2025 am 12:11 AM

Redisisanopen-Source,内存内部的库雷斯塔氏菌,卡赫和梅斯吉级,excellingInsPeedAndVersatory.itiswidelysusedforcaching,Real-Timeanalytics,Session Management,Session Managements,and sessighterboarderboarderboardobboardotoitsssupportfortfortfortfortfortfortfortfortorvortfortfortfortfortfortforvortfortforvortforvortforvortfortforvortforvortforvortforvortdatastherctuct anddatataCcessandcessanddataaCces

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器