搜尋
首頁資料庫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還有三款特殊儲存類型

    Gecpatial                                             地1#  #主要用於儲存地理位置信息,並對儲存的資訊進行操作,基於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

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用