說起來,可能有些小伙伴會不相信,我是第一次用 Redis,真的。因為公司小,業(yè)務(wù)量小,Redis 根本派不上用場。不過,最近打算把系統(tǒng)升級一下,順帶把當(dāng)下時髦的技術(shù)入個門,“與時俱進”嘛,雖然進的有“一點點”晚(注意雙引號)。 作為一名富有責(zé)任心的技術(shù)博主,我覺得有必要把我入門 Redis 的過程分享出來,供一些小伙伴作為參考。要是我哪里寫錯了,別客氣,過來給我一巴掌,就行了(溫柔點,別打腫,影響顏值就不好了)。 01、Redis 是什么Redis 是互聯(lián)網(wǎng)技術(shù)領(lǐng)域中使用最廣泛的存儲中間件,它是 Remote Dictionary Service 三個單詞中加粗字母的組合。你別說,組合起來后念著挺自然的。 Redis 以超高的性能、完美的文檔、簡潔的源碼著稱,國內(nèi)外很多大型互聯(lián)網(wǎng)公司都在用,比如說阿里、騰訊、GitHub、Stack Overflow 等等。它的版本更新非常的快,功能也越來越強大,最初只是用來作為緩存數(shù)據(jù)庫,現(xiàn)在已經(jīng)可以用它來實現(xiàn)消息隊列了。 可以這么說吧,掌握 Redis 已經(jīng)變成了一項后端工程師必須具備的基礎(chǔ)技能。 Redis 的作者是一名意大利人,網(wǎng)名 Antirez,長相還是過得去的,感興趣的小伙伴可以 Google 一下。知道為什么 Redis 的默認端口是 6379 嗎? 據(jù)說是手機鍵盤上“MERZ”的位置決定的,小伙伴們可以打開自己手機上九宮格鍵盤感受一下?!癕ERZ”是什么意思呢?據(jù)說是“愚蠢”的意思。這?是不是感覺程序員的生活中還是有蠻多神秘色彩的? 02、安裝 RedisRedis 針對不同的操作系統(tǒng)有不同的安裝方式,我們這篇入門的文章就以 Windows 為例吧。 下載地址如下: https://github.com/MicrosoftArchive/redis/releases 最新的版本是 3.2.100。從下圖中可以看得出,Redis 的體積非常的輕量級,還不到 6 M。體積越小,讓我感覺 Redis 越牛逼,你是不是也有這種感覺? 有兩種安裝方式,第一種是 msi 的方式,雙擊運行后安裝;第二種是免安裝,綠色版,只需要把 zip 包解壓就可以了。 里面有一份英文版的文檔——Windows Service Documentation.docx,教我們?nèi)绾伟惭b Redis 服務(wù)、如何啟動、如何關(guān)閉,以及如何使用自定義端口啟動服務(wù)。 打開命令行,進入到當(dāng)前解壓后的目錄,輸入啟動命令: redis-server redis.windows.conf 然后你就會看到 Redis 啟動后的歡迎畫面,左邊這個盒子感覺好有藝術(shù)感啊!有小伙伴知道是怎么生成的嗎? 還有一些其他的提示信息:
那如何停止服務(wù)呢?可以直接按下 03、Redis 的數(shù)據(jù)結(jié)構(gòu)Redis 有 5 種基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),String、Hash、List、Set、SortedSet,也是學(xué) Redis 必須掌握的。除此之外,還有 HyperLogLog、Geo、Pub/Sub,算是高級數(shù)據(jù)結(jié)構(gòu)了。我們這篇入門的文章就以 String 為例吧。 String 結(jié)構(gòu)使用非常廣泛,比如說把用戶的登陸信息轉(zhuǎn)成 JSON 字符串后緩存起來,等需要取出的時候再反序列化一次。 小伙伴們應(yīng)該都知道,Java 的 String 是不可變的,無法修改。Redis 的 String 是動態(tài)的,可以修改的,兩者不同哦。關(guān)于 Redis 的 String 結(jié)構(gòu),我覺得老錢的 Redis 教程上講得非常明白,大家一起拜讀下。
04、實操 Redis好了好了,我估計很多小伙伴們已經(jīng)整裝待發(fā),準備實操一把了。這就來。 Redis 的解壓目錄下有一個名叫 redis-cli.exe 的文件,這是 Redis 自帶的一個客戶端工具,可以用來連接之前我們啟動好的 Redis 服務(wù)。雙擊啟動它。 這個客戶端還是非常智能的,當(dāng)鍵入命令的時候,會跳出對應(yīng)的提示 當(dāng)按下空格跟進關(guān)鍵字的時候,對應(yīng)位置上的提示會自動消失。 以下是完整的鍵值對測試命令,小伙伴們可以按照格式動手實操一把。
1)set 命令用來存儲一個鍵值對,在本例中,name 為 key,cmower 為 值。 2)get 命令用來獲取一個鍵值對。 3)exists 命令用來測試一個鍵值對是否存在, 4)del 命令用來刪除一個鍵值對, 5)當(dāng)鍵值對刪除后,再通過 get 命令獲取時,結(jié)果就為 可能有小伙伴會好奇,
想了解 Redis 命令的具體使用方法,可以參考以下鏈接: http:///index.html 是 Redis Command Reference 和 Redis Documentation 的中文翻譯版,良心吧? 05、在 Java 中使用 Redis有些小伙伴可能會問,“二哥,我是一名 Java 程序員,我該如何在 Java 中使用 Redis 呢?”這個問題問得好,這就來,這就來。 第一步,在項目中添加 Jedis(Java 和 Redis 的混拼) 依賴: <dependency> 第二步,新建 UserInfo(用戶信息)類:
第三步,在項目中添加 Gson(用于序列化和反序列化用戶信息) 依賴: <dependency> 第四步,新建測試類 RedisTest:
1)REDIS_KEY 常量為存儲用戶信息到 Redis 的 key。 2)在 Jedis 的幫助下,Java 連接 Redis 服務(wù)變得非常簡單,只需要一行代碼: Jedis jedis = new Jedis('localhost', 6379); 參數(shù)分別是主機名,端口號。 存儲鍵值對用 3)Gson 是谷歌提供的一個開源庫,可以將 Java 對象序列化為 JSON 字符串,同樣可以將 JSON 字符串反序列化(解析)為匹配的 Java 對象。 使用起來也非常簡單, 好了,來看一下程序的輸出結(jié)果:
完全符合我們的預(yù)期,perfect! 06、鳴謝好了,我親愛的小伙伴們,以上就是本文的全部內(nèi)容了,是不是看完后很想實操一把 Redis,趕快行動吧!如果你在學(xué)習(xí)的過程中遇到了問題,歡迎隨時和我交流,雖然我也是個菜鳥,但我有熱情啊。 另外,如果小伙伴想寫入門級別的文章,這篇就是最好的范例。 公眾號:沉默王二(ID:cmower) |
|