redis之字符串類型:
字符串類型是redis中最基本的數據類型,同時它也是memcached中僅有的數據類型。redis字符串類型的鍵能存儲任何形式的字符串,包括二進制數據,例如,存儲json化的對象甚至是一張圖片(能夠將圖片編碼成二進制的格式存儲)。另外、一個字符串類型的值最多能存儲512兆的數據。字符串類型是其餘四種數據類型的基礎,其它數據類型和字符串類型的差異從某種角度來講只是組織字符串的形式不一樣,例如,列表類型是以列表的形式組織字符串,集合類型是以集合的形式組織字符串。 前端
redis字符串類型應用場景:
一、高速緩存HTML片斷或者頁面
二、高速緩存關係型數據庫查詢的結果
三、緩存用戶的會話session信息(能夠實現分佈式的session共享)
四、統計網站的訪問者的總數量,天天用戶的註冊數,用戶活躍度/用戶簽到
五、限制api的訪問頻率
六、分佈式鎖,防止多個請求同時到達,而且緩存中無請求須要響應的數據,多個請求同時訪問db
七、防止重複提交,因爲前端的請求可能響應會慢,用戶可能會屢次點擊請求,實際上是沒有必要的redis
redis字符串類型的基本命令
一、set key value [EX seconds] [PX milliseconds] [NX|XX]
功能:給key設置一個字符串類型的值。默認狀況下,若是該key已經存在與redis中,不管以前它是什麼數據類型,原來的key的值會被覆蓋,而且以前的生存時間會被遺棄;若是key不存在,則給key設value值。
參數介紹:
EX/PX:過時時間,EX表明以秒爲單位,PX表明以毫秒爲單位,EX和PX不能同時設置
NX:只有當key不存在時才容許設置,也就是使用改參數時只容許新建key
XX:只有當key存在時才容許設置,也就是使用改參數時只容許更新key
返回值:設置成功返回OK,設置失敗返回nil數據庫
二、mset key value [key value...]
功能:同時爲多個key分別設置字符串類型的值,若是其中有的key已經存在於redis之中,則這些key的值將會被新設置的值覆蓋。mset是原子的,要麼全都設置成功,要麼全都設置失敗。
返回值:成功返回OK,失敗返回niljson
三、setex key seconds value
功能:給一個key設置字符串類型的值並指定生存時間,當key已經存在於redis中的時候,原來的key的值不管是什麼類型都會被新的值覆蓋,而且其生存信息也會被遺棄,所以可見,此命令就徹底等同於set key value EX second。另外該命令是原子性的,設置失敗或者指定生存時間失敗都會恢復到初始狀態
返回值:若是成功,返回OK,失敗則返回錯誤信息api
四、psetex key milliseconds value
功能與setex一致,只不過指定的生存時間是以毫秒爲單位的緩存
五、setnx key value
功能:若是key不存在於redis中,爲其設置字符串類型的value;若是key存在,則設置失敗,至關於set key value nx
返回值:成功返回1,失敗返回0session
六、msetnx key value [key value...]
功能:同時爲多個不存在於redis中的key設置字符串類型的值,若是其中某一個key存在於redis之中,則會設置失敗
返回值:設置成功返回1,失敗則返回0app
七、setrange key offset value分佈式
八、append key value
功能:給字符串類型的值後面追加新的value
返回值:
一、若是key不是字符串類型的,則報錯
二、若是key不存在則先給key賦值"",而後追加新的字符串memcached
九、get key
功能:查詢字符串類型的key的值
返回值:一、若是key不存在,返回nil
二、若是key不是字符串類型,返回相應的錯誤信息
三、key存在且是字符串類型,返回key的值
十、mget key [key...]
功能:查詢全部key的字符串類型的值,若是其中存在key不是字符串類型或者不存在,返回nil,此命令執行不會失敗
返回值:若是key是字符串類型,則返回key的值,若是key不存在或者key不是字符串類型的值,則返回nil
十一、getrange key start end
功能:截取字符串類型的key值的從offset的start到end的部分(先後都包含)
返回值:
一、若是key是字符串類型的值,則返回截取後的結果
二、若是key不是字符串類型的值,保錯
十二、strlen key
功能:獲取字符串類型的鍵key對應的值的字節長度(英文字母1字節,中文在Windows中佔2個字節,中文在Linux中佔3個字節)
返回值:
一、若是key鍵不存在,返回0
二、若是key爲非字符串類型的鍵,報錯WRONGTYPE
三、若是key存在且爲字符串類型,獲得key的字符長度
1三、getset key value
功能:原子性的給一個key設置value並將舊值返回
返回值:
一、若是key存在且爲字符串類型,則返回key的舊值併爲key設置新值爲value
二、若是key不存在,返回nil
三、若是key不是字符串類型,則返回相應的錯誤
1四、incr key
功能:爲字符串類型的且能表示整數的key自增1,比返回自增後的結果。若是key不存在,則會初始化該key爲0,而後自增1,並返回自增後的結果
返回值:
一、key不存在或者key是能夠表示整數數字(能夠爲負整數或者0)的字符串類型,返回自增1後的結果
二、若是key不是字符串類型的數據,報錯
1五、incrby key increment
功能與返回值都相似於incr key類似,只不過,這裏自增的量爲increment(這裏increment必須爲整形數,不論是負數仍是整數亦或是0)
1六、incrbyfloat key increment
功能:爲值爲數值的(不論是整數仍是浮點數)自動增加increment(這裏increment只須要是數值類型便可,也能夠用科學計數法表示)
返回值:
一、若是key能夠表示爲浮點數類型的值,則返回增長浮點類型的increment的結果
二、若是key不是數字類型,或者不是字符串類型,報錯
1七、decr key
功能:爲整數類型的字符串自減一,若是key不存在,則先設置key爲0,而後再自減一
返回值:
一、若是key爲整數類型的字符串,則自減一
二、若是key不是整數類型的字符串或者是其餘類型的數據,報錯
1八、decrby key decrment
功能:與incrby同樣,這裏只不過是減
1九、setbit key offset value
20、getbit key offset
功能:對key所儲存的字符串值,獲取指定偏移量上的位(bit)。當offset比字符串值的長度大,或者key不存在時,返回0 。
返回值:字符串值指定偏移量上的位
2一、bitcount key [start end]
功能:計算位爲1的個數
2二、bitop operation destkey key [key ...]
operation:
一、and
二、or
三、not
四、xor
2三、bitpos key bit [start] [end]