日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

redis将散裂中某个值自增_Redis总结

發布時間:2024/8/23 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis将散裂中某个值自增_Redis总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 初識Redis

1,Redis 使用內存存儲的非關系型數據庫,除了各種數據類型的專有命令,還支持批量操作(bulk operation)和不完全(partial)的事務。Memcached 使用內存存儲的鍵值對緩存。MongoDB使用硬盤存儲的非關系性數據庫.

2,Redis可以存儲鍵與5種不同數據結構類型之間的映射,這5種數據類型分別是String(字符串)、List(列表)、set(集合)、hash(散列)、zSet(有序集合)。zSet某種意義上來說是Redis特有的數據結構。

3, String 字符串命令

(1)set 設置存儲在給定鍵中的值

(2)get 獲取存儲在給定鍵中的值

(3)del 刪除存儲在給定鍵中的值

4,List 列表命令

(1)Rpush 將給定的值推入列表的右(lpush 左)端

(2)lrance 獲取列表在給定范圍上的所有值

(3)lindex 獲取列表在給定位置的單個元素

(4)lpop 從列表的左端彈出一個值,并返回這個值

5,set 集合命令

(1)sadd 將給定的元素添加到集合

(2)smembers 返回集合包含的所有元素

(3)sismember 檢擦給定的元素是否已存在于集合中

(4)srem 如果給定的元素存在于集合中,那么移除此元素

6, hash 散列命令(各個不相同的鍵無序排列)

(1)hset 在散列里面關聯起給定的鍵值對(注:此命令用于添加鍵值對到散列,命令會返回一個值來表示給定的鍵是否已存在)

(2)hget 獲取指定散列鍵的值

(3)hgetall 獲取散列包含的所有鍵值對

(4)hdel 如果給定的鍵在散列里已存在,那么移除這個鍵

7, zset 有序集合命令

有序集合和散列一樣都用于存儲鍵值對:有序集合的鍵被稱為成員,每個成員都各不相同;而有序集合的值則被稱為分值,必須為浮點型。有序集合是Redis里唯一一個既可以根據成員訪問分值,又可以根據分值以及分值的排列順序來訪問元素的結構。

(1)zadd 將一個帶有分值的成員添加到有序集合里面

(2)zrange 根據元素在有序排列中的位置,從有序集合中獲取多個元素

(3)zrangebyscore 獲取有序集合在給定分值范圍內的所有元素

(4)zrem 如果給定的成員存在于有序集合,那么移除該成員

二 使用Redis構建Web應用

1,Redis 登錄與Cookie緩存

2,使用Redis實現購物車

購物車的定義:每一個用戶的購物車都是一個散列,這個散列存儲了商品的id和商品訂購數量之間的映射。對商品數量的驗證有web應用程序負責,我們需要做的是當商品的訂購數量變化時對購物車進行更新:如果商品訂購數量大于0,那么程序會將這個商品的id和定購量添加到散列表里,如果用戶訂購的商品在散列里已存在,那么新的訂購熟練將會覆蓋原來的數量;相反如果訂購數量不大于0,那么就會從散列里刪除該商品。

3,頁面緩存

4,數據行緩存

數據緩存成json格式的原因,因為json格式簡明易懂,目前所有擁有Redis客戶端的編程語言都帶有能高效地編碼和解碼json格式的函數庫。所以不用xml。

5,網頁分析

三 Redis命令

1,字符串 Redis中的自增和自減命令

INCR INCR key-name 將鍵存儲的值加上1

DECR DECR key-name 將鍵存儲的值減去1

INCRBY INCRBY key-name amount 將鍵存儲的值加上整數amount

DECRBY DECRBY key-name amount 將鍵存儲的值減去整數amount

INCRBYFLOAF INCRBYFLOAF key-name amount 將鍵存儲的值加上浮點數amount

當用戶將一個值存儲到Redis字符串時,有以下三種情況:如果這個值可以被解釋成十進制整數或者浮點數,那么Redis允許用戶對這個字符串執行各種INCR*和DECR*操作

如果用戶對一個不存在的鍵或者一個保存了空字符串的鍵執行了自增或者自減操作,那么Redis會把這個值當做0來處理

如果用戶對一個值無法解釋為整數或者浮點數的字符串鍵執行自增或者自減操作,那么Redis將會返回一個錯誤。

供Redis處理子串和二進制位的命令

APPEND APPEND key-name value 將值value追加到給定鍵key-name當前存儲值的末尾

GETRANGE GETRANGE key-name start end 獲取一個由start到end范圍內所有字符組成的字串,包括開頭和結尾

SETRANGE SETRANGE key-name offset value 將從start偏移量開始的字串設置為給定值

GETBIT GETBIT key-name offset value 將字符串看做二進制位串,并返回位串中偏移量為offset的二進制位的值

SETBIT SETBIT key-name offset value 將字符串看做二進制位串,并將位串中偏移量為offset的二進制位的值設置為value

BITCOUNT BITCOUNT key-name [start end] 統計二進制位串中值為1的二進制位的數量,如果有偏移量,這只統計便宜量內的

BITOP BITOP operation dest-key key-name [key-name…] 對一個或多個二進制位串執行包括并(and) 或(or) 異或(xor) 非(not)在內的任意一種按位運算操作,并將計算得出的結果保存在dest-key鍵里面

2,列表 常用命令

LINDEX LINDEX key-name offset 返回列表中偏移量為offset的元素

LRANGE LRANGE key-name start end 返回列表從start到end范圍內的所有元素,包含start和end元素

LTRIM LTRIM key-name start end 對列表進行修剪,只保留從start到end的元素,start和end元素也會被保留

阻塞式的列表彈出命令以及在列表之間移動元素的命令

BLPOP BLPOP key-name [key-name…..] timeout 從第一個非空列表中彈出位于最左端的元素,或者在timeout秒之內阻塞并等待可彈出的元素出現

BRPOP BRPOP key-name [key-name…..] timeout 從第一個非空列表中彈出位于最右端的元素,或者在timeout秒之內阻塞并等待可彈出的元素出現

RPOPLPUSE RPOPLPUSE source-key dest-key 從source-key列表中彈出位于最右端的元素,然后將這個元素推入dest-key列表的最左端,并向用戶返回這個元素。

BRPOPLPUSE BRPOPLPUSE source-key dest-key timeout 從source-key列表中彈出位于最右端的元素, 然后將這個元素推入dest-key列表的最左端,并向用戶返回這個元素。如果source-key為空,那么在timeout秒之內阻塞并等待可彈出的元素出現

3,集合 常用命令

SCARD SCARD key-name 返回集合包含元素的數量

SRANDMEMBER SRANDMEMBER key-name [count] 從集合里隨機返回一個或多個元素。當count為整數時,命令返回的隨機元素不會重復;為負數時,命令返回的隨機數有可能重復

SPOP SPOP key-name 隨機的移除集合重點一個元素,并返回移除的元素

SMOVE SMOVE source-key dest-key item 如果集合source-key包含元素item,那么從集合source-key里面移除item,并將item添加到dest-key集合中;如果item被成功移除,那么命令返回1,否者為0

用于組合和處理多個集合的Redis命令

SDIFF SDIFF key-name [key-name…] 返回那些存在于第一個集合。但不存在于其他集合中的元素

SDIFFSTOPE SDIFFSTOPE dest-key key-name [key-name…] 將那些存在于第一個集合,但不存在于其他集合中的元素存儲到dest-key鍵里面

SINTER SINTER key-name [key-name….] 返回那些同時存在于所有集合中的元素(交集運算)

SINTERSTORE SINTERSTORE dest-key key-name [key-name….] 將那些同時存在于所有集合中的元素(交集運算)存儲到dest-key鍵中

SUNION SUNION key-name [key-name….] 返回那些至少存在于一個集合中的元素(并集運算)

SUNIONSTORE SUNIONSTORE dest-key key-name [key-name….] 將那些至少存在于一個集合中的元素存儲到dest-key鍵中

4,散列 用于添加和刪除鍵值對的命令

HMGET HMGET key-name key [key….] 從散列里獲取一個或者多個鍵的值

HMSET HMSET key-name key value [key value….] 為散列里一個或者多個鍵設置值 (批量操作)

HLEN HLEN key-name 返回散列包含的簡直對數量

展示Redis散列更高級特性的命令

HEXISTS HEXISTS key-name key 檢查給定的鍵是否存在于散列中

HKEYS HKEYS key-name 獲取散列包含的所有鍵

HVALS HVALS key-name 獲取散列包含的所有值

HINCRBY HINCRBY key-name key increment 將鍵key存儲的值加上整數increment

HINCRBYFLOAT HINCRBYFLOAT key-name key increment 將鍵key存儲的值加上浮點數increment

5,有序集合的常用命令

ZCARD ZCARD key-name 返回有序集合包含的成員數量

ZINCRBY ZINCRBY key-name increment member 將member成員的分值加上increment

ZCOUNT ZCOUNT key-name min max 返回分值介于min和max之間的成員數量

ZRANK ZEANK key-name member 返回成員member在有序集合中的排名

ZSCORE ZSCORE key-name member 返回成員member的分值

有序集合的范圍型數據獲取命令和范圍型刪除命令

ZREVRANK key-name member 返回有序集合里成員member的排名,成員按照分值從大到小排列

ZREVRANGE key-name start stop [WITHSCORES] 返回有序集合給定排名范圍內的成員,成員按照分值從大到小排列

ZREVRANGEBYSCORE key max min [WITHSCORES] 獲取有序集合中介于max和min范圍內的成員,并按照分值從大到小返回他們

ZREMRANGEBYRANK key-name start stop 移除有序集合中排名介于start和stop之間的所有成員

ZREMRANGEBY SCORE key-name max min 移除有序集合中排名介于min和max之間的所有成員

ZINTERSTORE dest-key key-count key [key…] [WEIGHTS weight[weight… ]] [AGGREGART SUM|MIN|MAX] 對給定的有序集合執行類似于集合的交集運算

ZUNIONSTORE dest-key key-count key [key…] [WEIGHTS weight[weight… ]] [AGGREGART SUM|MIN|MAX] 對給定的有序集合執行類似于集合的并集運算

6,發布與訂閱的命令

SUBSCRIBE channel [channel…] 訂閱給定的一個或多個頻道

UNSUBSCRIBE [channel [channel…]] 退訂給定的一個或多個頻道,如果執行時沒有給定頻道,那么退訂所有頻道

PUBLISH channel message 像給定的頻道發送信息

PSUBSCRIBE pattern [psttern….] 訂閱魚給定的模式相匹配的所有頻道

PUNSUBSCRIBE [pattern [psttern….]] 退訂給定的模式,如果執行時沒有給定任何模式那么退訂所有模式

7, Redis事務

Redis的基本事務:需要用到MULTI命令和EXEC命令,這種事務可以讓一個客戶端在不被其他客戶端打斷的情況下執行多個命令。和關系數據庫中可以進行回滾(rollback)的事務不同,在Redis中,被MULTI命令和EXEC包圍的所有命令會一接一個的執行,直到所有的命令執行完畢。當一個事務執行完畢后,Redis才回處理其他客戶端。

8,鍵的過期時間

在使用Redi存儲數據時,有些數據僅在一段時間內有用,雖然我們可以在數據過期之后手動刪除,但更好的方法是使用Redis提供的鍵過期操作刪除數據。

鍵過期命令只能為整個鍵設置過期時間,而沒有辦法為鍵里單個元素設置過期時間。

用于處理Redis過期時間的命令

PERSIST key-name 移除鍵的過期時間

TTL key-name 查看給定鍵距離過期還有多少秒

EXPIPE key-name seconds 讓給定的鍵在指定的秒數之后過期

EXPIPEAT key-name timestamp 將給定鍵的過期時間設置為給定UNIX時間戳

PPTL key-name查看給定鍵距離過期還有多少毫秒

PEXPIPE key-name milliseseconds 讓給定的鍵在指定毫秒數之后過期

PEXPIPEAT key-name timestamp- milliseseconds 將一個毫秒精度的UNIX時間戳設置為給定鍵的過期時間

四 數據安全與性能保障

1,數據持久化選項

Redis提供兩種不同的持久化方法來將數據存儲到硬盤里。第一種方法是 快照(snapshotting),它可以將存在于某一時刻的所有數據都寫入硬盤里。第二種方法是 只追加文件(append-only file,AOF),它會在執行寫命令時,將執行的寫命令復制到硬盤里。這兩種方法既可單獨使用,又可同時使用。

將內存里的數據存儲到硬盤上的一個主要原因是為了在以后重用數據,或者是為了防止系統故障而將數據備份到一個遠程系統。

總結

以上是生活随笔為你收集整理的redis将散裂中某个值自增_Redis总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。