云服務(wù)器的類型
云服務(wù)器類型分為三種:公有云服務(wù)器,私有云服務(wù)器,專用云服務(wù)器
公有云服務(wù)器:公有云服務(wù)器具有成本效益、彈性擴展、可靠性、高可用性、管理簡便、安全性、全球化服務(wù)和技術(shù)支持等優(yōu)勢,適用于各種規(guī)模和類型的企業(yè)和個人需求。
私有云服務(wù)器:私有云服務(wù)器是一種用于構(gòu)建和管理私有云環(huán)境的服務(wù)器。它可以提供類似于公有云的彈性計算、存儲和網(wǎng)絡(luò)資源,但是這些資源完全掌控在用戶自己的控制下。私有云服務(wù)器可以部署在用戶自己的數(shù)據(jù)中心。使用私有云服務(wù)器可以滿足一些特定需求,例如企業(yè)有對數(shù)據(jù)安全性和隱私性的特別要求,對公有云環(huán)境不太適應(yīng)。
專用云服務(wù)器:專用云服務(wù)器提供了許多優(yōu)勢,包括更高的性能和可擴展性、更高的安全性和隱私性,以及更大的靈活性和控制權(quán)??蛻艨梢愿鶕?jù)自己的需求自定義和管理專用云服務(wù)器,包括操作系統(tǒng)、應(yīng)用程序和網(wǎng)絡(luò)配置等。
云服務(wù)優(yōu)點
- 成本效益:云服務(wù)允許企業(yè)根據(jù)需求動態(tài)地增加或減少計算資源,避免過度投資設(shè)備和維護費用,降低運營成本。
- 易于管理和維護:云服務(wù)提供商通常具有強大的技術(shù)團隊和經(jīng)驗,可以為企業(yè)提供技術(shù)支持和維護服務(wù),減輕企業(yè)管理和維護負擔。
- 靈活性和可擴展性:在云計算環(huán)境中,資源是按需分配的,企業(yè)可以根據(jù)需要隨時添加或刪除計算資源,以適應(yīng)業(yè)務(wù)增長或下降的需要。
- 安全性:云服務(wù)提供商通常具有專門的安全措施來保護用戶的數(shù)據(jù)和隱私,例如備份、加密、網(wǎng)絡(luò)隔離等,同時由于云計算服務(wù)集中在一個地方,采取統(tǒng)一的安全措施能夠更有效地保護企業(yè)的數(shù)據(jù)安全。
- 全球化服務(wù):云服務(wù)提供商在全球范圍內(nèi)建立了多個數(shù)據(jù)中心,可以提供全球化的服務(wù),滿足用戶在不同地域的業(yè)務(wù)需求,實現(xiàn)全球范圍內(nèi)的數(shù)據(jù)傳輸和訪問。
- 技術(shù)支持:云服務(wù)提供商通常提供全天候的技術(shù)支持和服務(wù),用戶可以隨時獲得專業(yè)的幫助和解決方案,提高了用戶使用公有云服務(wù)器的便利性和可靠性。
redis
一,關(guān)系型數(shù)據(jù)庫(sqlserver,mysql,oracle)的事務(wù)隔離機制說明:
下面是設(shè)置mysql數(shù)據(jù)庫事務(wù)隔離機制的sql語句
set global transaction isolation level read uncommitted;
下面是事務(wù)隔離的幾個機制:
- read uncommitted(讀取未提交的數(shù)據(jù))
缺點:如果數(shù)據(jù)最終rollback了,那么讀取的數(shù)據(jù)就錯誤了 - read committed(讀取已提交的數(shù)據(jù))
缺點:如果在一個事務(wù)中,對通過一個數(shù)據(jù)進行了多次的讀取。在多次讀取的過程中,有人提交數(shù)據(jù)。那么多次讀取的數(shù)據(jù)結(jié)果就會出現(xiàn)不一致 - repeatable read(重復讀)
缺點:會出現(xiàn)幻讀 - serializable(串行)
缺點:太慢
redis事務(wù)機制
- MULTI與EXEC命令
以MULTI開始一個事務(wù),然后將多個命令入隊到事務(wù)中,最后由EXEC命令觸發(fā)事務(wù),一并執(zhí)行事務(wù)中的所有命令 - DISCARD命令
DISCARD命令用于取消一個事務(wù),她清空客戶端的整個事務(wù)隊列,然后將客戶端從事務(wù)狀態(tài)調(diào)整回非事務(wù)狀態(tài),最后返回字符串OK給客戶端,說明事務(wù)已被取消。
樂觀鎖:一個版本控制 update table set age=13 where v=1
悲觀鎖:
- WATCH(類似樂觀鎖)
WATCH命令用于在事務(wù)開始之前監(jiān)視任意數(shù)量的鍵:當調(diào)用EXEC命令執(zhí)行事務(wù)時,如果任意一個被監(jiān)視的鍵已經(jīng)被其他用戶端修改了,那么整個事務(wù)不再執(zhí)行,直接返回失敗。
例子一:這個例子中沒有出現(xiàn)異常,所以所有的命令都成功了。
例子二:這個例子中,在事務(wù)開啟后,有一個命令執(zhí)行出錯了,那么所有的命令都不會執(zhí)行
例子三:這個例子中出現(xiàn)了兩個事務(wù),兩個事務(wù)都表示自己執(zhí)行成功了,但是有一個發(fā)現(xiàn)值并不是自己設(shè)置的,被別人覆蓋了。
例子四:加上Wathch age后,再來執(zhí)行事務(wù)。
左邊的在開啟事務(wù)之后,exec執(zhí)行之前,右邊有另外一個事務(wù)對age進行改進。那么左邊的事務(wù)將執(zhí)行失敗
lua
lua腳本好處:
- 減少網(wǎng)絡(luò)開銷??梢詫⒍鄠€請求通過腳本的形式一次發(fā)送,減少網(wǎng)絡(luò)時延。
- 原子操作。redis會將整個腳本作為一個整體執(zhí)行,中間不會被其他命令插入。因此在編寫腳本過程中無需擔心會出現(xiàn)竟態(tài)條件,無需使用事務(wù)。
- 復用。客戶端發(fā)送的腳本會永久存在redis中,這樣,其他客戶端可以復用這一變量類型,聲明變量。控制語句,循環(huán)語句。函數(shù)
一,怎么在redis中使用lua腳本
命令格式:
EVAL script numkeys key [key…] arg [arg…]
說明:
- script 是第一個參數(shù),為lua5.1腳本。該腳本不需要定義Lua函數(shù)(也不應(yīng)該)
- 第二個參數(shù)numkeys指定后續(xù)參數(shù)有幾個key
- key [key…],是要操作的鍵,可以指定多個,在lua腳本中通過KEYS[1],KEYS[2]獲取
- arg [age…],參數(shù),在lua腳本中通過ARGV[1],ARGV[2]獲取。
使用eval命令 簡單示例:
eval "return ARGV[1]" 0 100
eval "return {ARGV[2],ARGV[1]}" 0 100 200
eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
上面是使用EVAL命令執(zhí)行l(wèi)ua腳本的簡單示例,沒有和redis結(jié)合起來。
下面我們使用redis.call來執(zhí)行redis的命令。
說明:…是字符串連接符。local是聲明一個局部變量
eval 'local val = ARGV[1].." "..redis.call("get",KEYS[1]) return val' 1 age niuniu
二,腳本內(nèi)容比較多,我們可以創(chuàng)建一個腳本文件。把腳本內(nèi)容寫入文件中。
注意:
- 這里執(zhí)行腳本文件,不是在交互模式下執(zhí)行的。
先創(chuàng)建一個腳本文件,在/home目錄下
# touch test01.lua
通過vi命令,把腳本內(nèi)容寫進去
執(zhí)行找個腳本,注意,前后的空格
# ./redis-cli -a 123456 --eval /usr/local/src/redis6/lua/test01.lua age , xiaolin
三,腳本文件上傳到redis中,然后仍然在交換模式中執(zhí)行這個腳本。
上傳腳本,返回一個hash值,f52a1be1e0dc6ce2813d1890a39dc993cab5527b
在交換模式中,使用EVALSHA命令執(zhí)行腳本文章來源:http://www.zghlxwxcb.cn/news/detail-726759.html
EVALSHA f52a1be1e0dc6ce2813d1890a39dc993cab5527b 1 age xiaozh
文章來源地址http://www.zghlxwxcb.cn/news/detail-726759.html
到了這里,關(guān)于華為云云耀云服務(wù)器L實例評測|使用redis事務(wù)和lua腳本的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!