① 如何在.Net中使用Redis
Redis安裝與啟動1.下載RedisRedis本身沒有提供Windows版本的,並且在Windows上也不太穩定,一般都將其部署到Linux環境下,Redis可以在其官網上下載,MSOpenTech中提供了Windows版本,這里為了學習安裝這一版本。點擊跳轉到Github後,直接點擊Zip下載。下載後根據自己計算機的版本選擇32位或者64位進行安裝。我將64位的解壓後放到D:\Redis文件夾下,同時將文件夾內的redis.conf也拷貝到該目錄下,這個是redis的配置信息:2.啟動Redis在Windows下面啟用Redis和啟動MogoDB一樣,需要使用命令行啟動,首先定位到該目錄,運行如下命令:D:\Redis>redis-server.exeredis.conf因為是在本機運行的,這里要注意埠號,同時要保持埠不要關閉。當然您也可以將Redis作為Windows服務在後台一直開啟。3.使用現在再開一個控制台應用程序連接之前啟動的Redis,如下:D:\Redis>redis-cli.exe-h172.16.147.121-p6379其中–h後面是本機的ip地址,後面的是埠。然後就可以執行set給key為city賦值:redis172.16.147.121:6379>setcityShanghai通過get可以獲取指定key為city的值了。redis172.16.147.121:6379>getcity同時,在我們往redis上寫數據的時候,Redis服務也會定時的往文件中寫數據這里僅簡單的介紹了get和set命令,命令可以查看mands.初探Redis下載ServiceStack.Redis和MongoDB一樣,在.NET中使用Redis其實也是使用第三方驅動,官網推薦的是使用ServiceStack.Redis下載後解壓得到如下dll.NET項目中使用Redis新建一個Console程序,引用上一步驟解壓的四個dll。做一個簡單的例子,在.NET中獲取之前我們設置的city的值。classProgram{staticRedisClientredisClient=newRedisClient("172.16.147.121",6379);//redis服務IP和埠staticvoidMain(string[]args){Console.WriteLine(redisClient.Get("city"));Console.ReadKey();}}首先通過staticRedisClientredisClient=newRedisClient("172.16.147.121",6379);建立連接,然後就可以直接用redisClient裡面的Get方法獲取key為city的值了。在前面的命令行中,我們網city中存入了Shanghai,現在我們獲取到了這個值。ServerStack中有很多方法可以在.NET中調用,其類結構圖如下:總結本文簡單介紹了Redis,Redis如何在Windows下安裝,以及如何在.NET中使用訪問和使用Redis,希望對您有所幫助,下文將講解如何在.NET中網Redis中讀寫復雜對象。
② redis入門教程 基本操作如下
1、redis安裝 windows環境的redis下載、安裝,請參見以下經驗,redis下載:https://jingyan..com/article/d7130635e85b8413fcf47543.html,redis安裝:https://jingyan..com/article/5bbb5a1bd782be13eaa17943.html,ubuntu系統下載安裝,請參見以下經驗,命令直接下載安裝:https://jingyan..com/article/a681b0de5755d73b184346e9.html,下載後手動編譯安裝:https://jingyan..com/article/af9f5a2d4c439743140a45e9.html
2、啟動redis服務端 雙擊運行「redis-server.exe」即可完成redis服務端的啟動,默認使用6379埠,服務端開啟後,不要關閉,因為客戶端需要連接上服務端才能進行各種操作
3、啟動redis客戶端 雙擊運行「redis-cli.exe」即可完成redis客戶端的啟動,默認連接本季的6379埠,如果redis客戶端與redis服務端不在同一台伺服器,可以修改「redis.windows.conf」配置文件中的【bind 127.0.0.1】為實際的ip地址即可
4、設置redis的字元串值 在redis客戶端窗口中輸入設置值的命令 set,命令:set str1 Hello Wrold,回車顯示OK,表示設置成功
5、判斷是否存在指定的redis鍵 在redis客戶端窗口中輸入判斷鍵的命令 exists,命令:exists str1,回車顯示1,表示存在鍵;顯示0,表示不存在鍵
6、讀取redis的字元串值 在redis客戶端窗口中輸入讀取值的命令 get,命令:get str1,回車顯示nil,表示鍵不存在。顯示其字元串內容,就是鍵str1對應的值
7、刪除redis的字元串值 在redis客戶端窗口中輸入刪除值的命令 del,命令:del str1,回車顯示1,表示刪除成功
③ Java工程師是如何使用Redis的
redis算是用的最多的key-value型緩存組件了!
因為使用了key-value型,所以存取效率極好,簡單來說就類似JAVA中的hashMap,不過是用整個伺服器內存來當做map,但是redis的數據可以通過配置指令保存到硬碟(同步保存save,非同步保存bgsave)!
當然,redis在使用過程中會存在持久化失敗,緩存擊穿,擴容困難等問題,不過無論如何,redis都是一款最值得用的緩存工具!
使用過程中有任何問題,歡迎大家一起交流,redis還有什麼遺漏功能,也請大家補充,謝謝!
④ redis基本操作命令
redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字元串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁碟或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。
MULTI
說明:
標記一個事務塊的開始。
事務塊內的多條命令會按照先後順序被放進一個隊列當中,最後由 EXEC 命令原子性(atomic)地執行。
返回值:
總是返回 OK 。
示例:
DISCARD
說明:
取消事務,放棄執行事務塊內的所有命令。
如果正在使用 WATCH 命令監視某個(或某些) key,那麼取消所有監視,等同於執行命令 UNWATCH 。
返回值:
總是返回 OK 。
示例:
WATCH
說明:
監視一個(或多個) key ,如果在事務執行之前這個(或這些) key 被其他命令所改動,那麼事務將被打斷。
返回值:
總是返回 OK 。
UNWATCH
說明:
取消 WATCH 命令對所有 key 的監視。
如果在執行 WATCH 命令之後, EXEC 命令或 DISCARD 命令先被執行了的話,那麼就不需要再執行 UNWATCH 了。
因為 EXEC 命令會執行事務,因此 WATCH 命令的效果已經產生了;而 DISCARD 命令在取消事務的同時也會取消所有對 key 的監視,因此這兩個命令執行之後,就沒有必要執行 UNWATCH 了。
返回值:
總是返回 OK 。
EXEC
說明:
執行所有事務塊內的命令。
假如某個(或某些) key 正處於 WATCH 命令的監視之下,且事務塊中有和這個(或這些) key 相關的命令,那麼 EXEC 命令只在這個(或這些) key 沒有被其他命令所改動的情況下執行並生效,否則該事務被打斷(abort)。
返回值:
事務塊內所有命令的返回值,按命令執行的先後順序排列。
當操作被打斷時,返回空值 nil 。
示例:
Redis 提供了簡單的事務,之所以說它簡單,主要是因為它不支持事務中的回滾特性,同時無法實現命令之間的邏輯關系計算,當然也體現了 Redis 的 「keep it simple」 的特性。
⑤ linux下怎麼進入redis操作
1.先進入redis目錄,將redis安裝到指定目錄
使用make PREFIX=/usr/local/redis install 命令
5.重新啟動一下redis服務
./bin/redis-server ./redis.conf
然後就可以使用redis進行操作了
⑥ Redis集群操作
有 slots
無 slots 時直接刪除
(5)學習redis-trib命令使用:
添加兩個節點
docker-compose.yaml 添加
1 create :創建一個集群環境host1:port1 ... hostN:portN(集群中的主從節點比例)
2 call :可以執行redis命令
3 add-node :將一個節點添加到集群里,第一個參數為新節點的ip:port,第二個參數為集群中任意一個已經存在的節點的ip:port
4 del-node [host:port node_id] :移除一個節點
5 reshard :重新分片
6 check [hosts:port]:檢查集群狀態
步驟一:使用add-node命令:綠色為新增節點,紅色為已知存在節點
輸出如下:
步驟二:查看集群狀態:
注意: 當添加節點成功以後,新增的節點不會有任何數據,因為它沒有分配任何的slot(hash槽)。我們需要為新節點手工分配slot。
步驟一:使用redis-trib命令,找到集群中的任意一個主節點(紅色位置表現集群中的任意一個主節點),對其進行重新分片工作。
輸出如下:
1提示一:是希望你需要多少個槽移動到新的節點上,可以自己設置,比如200個槽。
2提示二:是你需要把這200個slot槽移動到那個節點上去(需要指定節點id),並且下個 提示是輸入all為從所有主節點(7001 7002 7003)中分別抽取響應的槽數(一共為200個槽到指定的新節點中!,並且會列印執行分片的計劃。)
3提示三:輸入yes確認開始執行分片任務。在最後我們再次看一下集群狀態:
如上圖所示,現在我們的7007已經有slot槽了,也就是說可以在7007上進行讀寫數據啦!到此為止我們的7007已經加入到集群中啦,並且是主節點(Master)
步驟一:還是需要執行add-node命令:
提示添加成功後我們繼續看一下集群的狀態:
如圖所示,還是一個master節點,沒有被分配任何的slot槽。
步驟二:我們需要執行replicate命令來指定當前節點(從節點)的主節點id為哪個。
首先需要登錄新加的7008節點的客戶端,然後使用集群命令進行操作,把當前的7008(slave)節點指定到一個主節點下(這里使用之前創建的7007主節點,紅色表示節點id)
我們繼續看一下當前集群的狀態,如下圖:我們已經成功的把7008放到7007這個主節點下面了,到此為止我們已經成功的添加完一個從節點了。
(9)我們可以對集群進行操作,來驗證下是否可以進行讀寫(當然可以)。
(10)我們現在嘗試刪除一個節點(7008 slave)
步驟一:刪除從節點7008,輸入del-node命令,指定刪除節點ip和埠,以及節點id(紅色為7008節點id)
輸出如下:
步驟二:再次查看一下集群狀態,如下圖所示,我們已經成功的移除了7008 slave節點,另外我們發現移除一個節點以後,當前節點的服務進程也會隨之銷毀。可以使用ps命令查看當前的服務(ps -el | grep redis),發現少了一個運行的server,也就是剛移除的7008從節點。
(11)最後,我們嘗試刪除之前加入的主節點7007,這個步驟會相對比較麻煩一些,因為主節點的裡面是有分配了slot槽的,所以我們這里必須先把7007里的slot槽放入到其他的可用主節點中去,然後再進行移除節點操作才行,不然會出現數據丟失問題。
步驟一:刪除7007(master)節點之前,我們需要先把其全部的數據(slot槽)移動到其他節點上去(目前只能把master的數據遷移到一個節點上,暫時做不了平均分配功能)。
輸出如下:
到此為止我們已經成功的把7007主節點的數據遷移到7001上去了,我們可以看一下現在的集群狀態如下圖,你會發現7007下面已經沒有任何數據(slot)槽了,證明遷移成功!
輸出如下:
最後:我們查看集群狀態,一切還原為最初始狀態啦!OK 結束!