redis value最大值_Redis从入门到深入-String的value
1. string類型
1.1 redis數據存儲類型redis本身是一個Map,其中所有的數據都是采用key:value的形式存儲
數據類型指的是存儲的數據的類型,也就是value部分的類型,key部分永遠都是字符串
1.2 string類型存儲的數據:單個數據,最簡單的數據存儲類型,也是最常用的數據存儲類型
存儲數據的格式:一個存儲空間保存一個數據
存儲內容:通常使用字符串,如果字符串以整數形式展示,可以作為數字操作使用
1.3 基本操作添加/修改數據
set key value獲取數據
get key刪除數據(刪除成功返回1,失敗返回0)
del key添加/修改多個數據
mset key1 value1 key2 value2 ...獲取多個數據
mget key1 key2...獲取數據字符個數(字符串長度)
strlen key追加信息到原始信息后部(如果原始信息存在就追加,否則新建)
append key value
1.4 單數據操作與多數據操作選擇
(set key value) vs (mset key1 value1 key2 value)
一條指令的執行過程
請求+處理時間單指令3條指令的執行過程
總時間= 請求時間6 + 處理時間3多指令3條指令的執行過程
這里的請求時間可能比單指令要燒毀多一點,因為數據量比較大
總時間= (請求時間+)2 + 處理時間3
1.5 String類型的擴展操作
業務場景:大型企業級應用中,分表操作是基本操作,使用多張表存儲同類型數據,但是對應的主鍵id必須保證統一性,不能重復。Oracle數據庫具有sequence設定,可以解決該問題,但是MySQL數據庫并不具有類似的機制,name如何解決?
解決方案
設置數值數據增加指定范圍的值
incr
incrby
incrybyfloat 設置數值數據減少指定范圍的值
decr
decr string作為數值操作
string在redis內部存儲默認是一個字符串,當遇到增減類操作incr,decr時會轉為數值型進行計算
redis所有的操作都是原子性的,采用單線程處理所有業務,命令都是一個一個執行的,因此無需考慮并發帶來的數據影響
注意:按數值進行操作的類型,如果原始數據不能轉為數值,或超越了redis數值上限范圍,將報錯。9223372036854775807 (java中long型數據最大值,Long.MAX_VALUE)
1.6 投票場景
業務場景:“最強女生”啟動海選投票,只能通過微信投票,每個微信號每4個小時只能投一票。 電商商家開啟熱門商品推薦,熱門商品不能一直處于熱門期,每種商品熱門期只能維持3天,3天后自動取消熱門。 新聞網站會出現新聞,熱點新聞最大的特征是時效性,如何自動控制熱點新聞的時效性。解決方案
設置數據具有指定的生命周期
setex
psetex 要點
設置時間后面的會覆蓋前面一個設置的時間,redis控制數據的生命周期,通過數據是否失效控制業務行為,適用于所有具有時效性限定控制的操作
1.7 高頻key訪問
主頁高頻訪問信息顯示控制,例如新浪微博大V主頁顯示粉絲數與微博數量解決方案
在redis中為大v用戶設定用戶信息,以用戶主鍵和屬性值作為key,后臺設定定時刷新策略即可
eg:user:id:35879232:fans -> 12210947 eg:user:id:35879232:blogs -> 6164 eg:user:id:35879232:focuss -> 83
在redis中以json格式存儲大V用戶信息,定時刷新(也可以使用hash類型) eg:user:id:35879232 -> (id:35879232,name:春晚,fans:1222302,blogs:6104}
1.7 key的設置約定
1.8 string類型數據操作的注意事項數據操作不成功的反饋與數據正常操作之間的差異
表示運行結果是否成功(1或者0,1表示成功,0表示失敗)
表示運行結果值(3/2/1...)
數據未獲取到(nil等同于null)
數據最大存儲量(512MB)
數據計算最大返回(java中的long的最大值, Long.MAX_VALUE)
總結
以上是生活随笔為你收集整理的redis value最大值_Redis从入门到深入-String的value的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python画正方形内切圆_python
- 下一篇: mysql存储过程中as_mysql -