首頁 資料庫 Redis 怎麼使用Java來操作Redis資料庫

怎麼使用Java來操作Redis資料庫

May 27, 2023 pm 05:52 PM
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

熱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

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP:網絡開發的關鍵語言 PHP:網絡開發的關鍵語言 Apr 13, 2025 am 12:08 AM

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP與Python:了解差異 PHP與Python:了解差異 Apr 11, 2025 am 12:15 AM

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

MySQL:世界上最受歡迎的數據庫的簡介 MySQL:世界上最受歡迎的數據庫的簡介 Apr 12, 2025 am 12:18 AM

MySQL是一種開源的關係型數據庫管理系統,主要用於快速、可靠地存儲和檢索數據。其工作原理包括客戶端請求、查詢解析、執行查詢和返回結果。使用示例包括創建表、插入和查詢數據,以及高級功能如JOIN操作。常見錯誤涉及SQL語法、數據類型和權限問題,優化建議包括使用索引、優化查詢和分錶分區。

PHP與Python:核心功能 PHP與Python:核心功能 Apr 13, 2025 am 12:16 AM

PHP和Python各有優勢,適合不同場景。 1.PHP適用於web開發,提供內置web服務器和豐富函數庫。 2.Python適合數據科學和機器學習,語法簡潔且有強大標準庫。選擇時應根據項目需求決定。

PHP與其他語言:比較 PHP與其他語言:比較 Apr 13, 2025 am 12:19 AM

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

為什麼要使用mysql?利益和優勢 為什麼要使用mysql?利益和優勢 Apr 12, 2025 am 12:17 AM

選擇MySQL的原因是其性能、可靠性、易用性和社區支持。 1.MySQL提供高效的數據存儲和檢索功能,支持多種數據類型和高級查詢操作。 2.採用客戶端-服務器架構和多種存儲引擎,支持事務和查詢優化。 3.易於使用,支持多種操作系統和編程語言。 4.擁有強大的社區支持,提供豐富的資源和解決方案。

PHP:許多網站的基礎 PHP:許多網站的基礎 Apr 13, 2025 am 12:07 AM

PHP成為許多網站首選技術棧的原因包括其易用性、強大社區支持和廣泛應用。 1)易於學習和使用,適合初學者。 2)擁有龐大的開發者社區,資源豐富。 3)廣泛應用於WordPress、Drupal等平台。 4)與Web服務器緊密集成,簡化開發部署。

centos redis如何配置Lua腳本執行時間 centos redis如何配置Lua腳本執行時間 Apr 14, 2025 pm 02:12 PM

在CentOS系統上,您可以通過修改Redis配置文件或使用Redis命令來限制Lua腳本的執行時間,從而防止惡意腳本佔用過多資源。方法一:修改Redis配置文件定位Redis配置文件:Redis配置文件通常位於/etc/redis/redis.conf。編輯配置文件:使用文本編輯器(例如vi或nano)打開配置文件:sudovi/etc/redis/redis.conf設置Lua腳本執行時間限制:在配置文件中添加或修改以下行,設置Lua腳本的最大執行時間(單位:毫秒)

See all articles