1. 程式人生 > >Redis操作字串(字串最大值為512M)

Redis操作字串(字串最大值為512M)

set key value [ex 秒數] / [px 毫秒數]  [nx] /[xx]

如: set a 1 ex 10 , 10秒有效

Set a 1 px 9000  , 9秒有效

注: 如果ex,px同時寫,以後面的有效期為準

如 set a 1 ex 100 px 9000, 實際有效期是9000毫秒

nx: 表示key不存在時,執行操作

xx: 表示key存在時,執行操作

mset  multi set , 一次性設定多個鍵值

例: mset key1 v1 key2 v2 ....

get key 

作用:獲取key的值

mget key1 key2 ..keyn

作用:獲取多個key的值

setrange key offset value

作用:把字串的offset偏移位元組,改成value

redis 127.0.0.1:6379> set greet hello

OK

redis 127.0.0.1:6379> setrange greet 2 x

(integer) 5

redis 127.0.0.1:6379> get greet

"hexlo"

注意: 如果偏移量>字元長度, 該字元自動補0x00

redis 127.0.0.1:6379> setrange greet 6 !

(integer) 7

redis 127.0.0.1:6379> get greet

"heyyo\x00!"

append key value

作用: 把value追加到key的原值上

getrange key start stop

作用: 是獲取字串中 [start, stop]範圍的值

注意: 對於字串的下標,左數從0開始,右數從-1開始

redis 127.0.0.1:6379> set title 'chinese'

OK

redis 127.0.0.1:6379> getrange title 0 3

"chin"

redis 127.0.0.1:6379> getrange title 1 -2

"hines"

注意: 

1: start>=length, 則返回空字串

2: stop>=length,則擷取至字元結尾

3: 如果start 所處位置在stop右邊, 返回空字串

getset key newvalue

作用: 獲取並返回舊值,設定新值

redis 127.0.0.1:6379> set cnt 0

OK

redis 127.0.0.1:6379> getset cnt 1

"0"

redis 127.0.0.1:6379> getset cnt 2

"1"

incr key

作用: 指定的key的值加1,並返回加1後的值

注意:

1:不存在的key當成0,再incr操作

2: 範圍為64有符號

incrby key number

redis 127.0.0.1:6379> incrby age  90

(integer) 92

incrbyfloat key floatnumber

redis 127.0.0.1:6379> incrbyfloat age 3.5

"95.5"

decr key

redis 127.0.0.1:6379> set age 20

OK

redis 127.0.0.1:6379> decr age

(integer) 19

decrby key number

redis 127.0.0.1:6379> decrby age 3

(integer) 16

getbit key offset

作用:獲取值的二進位制表示,對應位上的值(從左,從0編號)

redis 127.0.0.1:6379> set char A

OK

redis 127.0.0.1:6379> getbit char 1

(integer) 1

redis 127.0.0.1:6379> getbit char 2

(integer) 0

redis 127.0.0.1:6379> getbit char 7

(integer) 1

setbit  key offset value

設定offset對應二進位制位上的值

返回: 該位上的舊值

注意: 

1:如果offset過大,則會在中間填充0,

2: offset最大大到多少

3:offset最大2^32-1,可推出最大的的字串為512M

bitop operation destkey key1 [key2 ...]

對key1,key2..keyN作operation,並將結果儲存到 destkey 上。

operation 可以是 AND 、 OR 、 NOT 、 XOR

redis 127.0.0.1:6379> setbit lower 7 0

(integer) 0

redis 127.0.0.1:6379> setbit lower 2 1

(integer) 0

redis 127.0.0.1:6379> get lower

" "

redis 127.0.0.1:6379> set char Q

OK

redis 127.0.0.1:6379> get char

"Q"

redis 127.0.0.1:6379> bitop or char char lower

(integer) 1

redis 127.0.0.1:6379> get char

"q"

注意: 對於NOT操作, key不能多個

相關推薦

Redis操作字串字串512M

set key value [ex 秒數] / [px 毫秒數]  [nx] /[xx] 如: set a 1 ex 10 , 10秒有效 Set a 1 px 9000  , 9秒有效 注:

51Nod 1277 - 字串中的KMP

【題目描述】 【思路】 假設現在有一個位置 p o s

字串中的KMP

【題目描述】 【思路】 假設現在有一個位置 pospospos ,其字首已經出現一次即 [0,pos−1][0,pos-1][0,pos−1] 這個字首已經出現了一次,現在考慮一下 next[pos]next[pos]next[pos] 的意義,其實就是包含

JavaScript - 寫一個純函式 - 返回字串中的

 JavaScript  - 寫一個純函式 -  返回字串中的 最大值 和 最小值 函式裡面:  兩種寫法的返回值是一樣的. 有一個是 呼叫了 隱式型別轉換 另外一個是 呼叫了 顯示型別轉換 推薦是的是用 顯示型別轉換. 這樣對於程式碼的執

字串中的

一個字串的字首是指包含該字元第一個字母的連續子串,例如:abcd的所有字首為a, ab, abc, abcd。給出一個字串S,求其所有字首中,字元長度與出現次數的乘積的最大值。例如:S = "abababa" 所有的字首如下:"a", 長度與出現次數的乘積 1 * 4 = 4

nyoj44 nyoj17 HDU1087 DP動規 連續字串的和 單調遞增長子序列 單調遞增子序列小個數 非連續遞增子序列

連續字串的和最大值 給定一整型數列{a1,a2…,an},找出連續非空子串{ax,ax+1,…,ay},使得該子序列的和最大,其中,1<=x<=y<=n。 樣例輸入 1 5

KMP——51nod1277 字串中的

https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1277 標算Kmp啦 題目中讓我們求的前綴出現次數是可以用Kmp中的n

騰訊面試題:模板實現一個棧,要求Push入棧,Pop出棧,Max返回操作的時間複雜度O(1)

解題思路:要用模板實現亂序入棧的陣列每次pop()出棧都能得到當前棧中Max的最大值,就必須在push()入棧時進行維護操作,使的每次入棧的元素都能夠找到合適的位置並push(),每次push()操作完成後棧中的元素都能夠按從棧頂到棧底從大到小排列即可。這就需要寫一個不同於常

紫色的手鏈和次的異或

tdi 一個 data 不同的 col std 不同 date 格式 描述 那是木姑娘十七歲時,我送給她的生日禮物。(後來手鏈也成為了我最喜歡的出題媒介) 記得最初買的手鏈,由n段紫色的珠子構成,每一顆珠子都被賦予了一種價值評價w[i]。 為了木姑娘,我只惋惜自己不能摘下漫

單調隊列 —— 滑動窗口滾動

簡單 保持 工作 影響 區間最值 因此 for 開始 += 一道經典的單調隊列題目——[洛谷P1886 滑動窗口]。(下文開始只討論求滾動的最大值) 暴力解法是O(n^2)的,對於每一個起點,搜一遍長度為k的子序列,求得最值—&mdas

算法學習——貪心算法之刪數字

size 算法學習 末尾 最小 條件 求最大值 sca 位數 技術 算法描述 在給定的n位數字,刪除其中的k位數字( k < n),使得最後的n-k為數字為最大值(原次序不變) 算法思路 考慮到是要移出數字,我們使用鏈表設計此算法較為方便,鏈表可以直接移出某個位

【codeforces 981E. Addition on Segments】【線段樹】【bitset 01揹包的妙用優化】【好題】【操作集區間的能否構成】

【連結】 http://codeforces.com/contest/981/problem/E 【題意】   給定q個區間加的操作,求出這q個操作的所有子集的所有最大值,在[1,n]的範圍內 【分析】   要知道一個數能否可由某個操作集得到,只要知道對於某個

LeetCode:437. Path Sum III查詢

ou are given a binary tree in which each node contains an integer value.Find the number of paths that sum to a given value. The path does not need t

小化儘量小

給出是個序列,如1 2 3 2 5 4 ,將其劃分成m個連續的子序列,每個子序列最少有一個元素,怎樣使每個子序列的和的最大值最小 #include <iostream> #include <ctime> using namespace std;

Fast Arrangement 線段樹 維護區間 lazy標記

Fast Arrangement 題意: 有一列火車同一時刻只能承載K個人,然後有Q個人要買票(給出Q組區間表示要買票的區間),(注意: 火車行駛區間為a-b的範圍),問那個人可以成功買到票(先到先得)

【codeforces 981E. Addition on Segments】【線段樹】【bitset 01揹包的妙用優化】【好題】【操作集區間的能否構成】

【連結】 【題意】   給定q個區間加的操作,求出這q個操作的所有子集的所有最大值,在[1,n]的範圍內 【分析】   要知道一個數能否可由某個操作集得到,只要知道對於某個位置上的數的操作中能否構成這個數(好像口胡了)。   對於一個數,我們可以知道能對它進行的

MapReduce程式設計基礎——數值概要計算、平均值

數值概要 數值概要模式是計算資料集聚合統計的一般性模式 適用場景: 要處理的資料數值或者計數 資料可以按某些特定的欄位分組 數值概要的應用: 單詞計數 記錄計數 最大/最小值計數 平均值/中位數/標準差

Copying Books貪心 小化 二分

題目描述開頭一大堆屁話,我還仔細看了半天。。其實就最後2句管用。意思就是給出n本書然後要分成k份,每份總頁數的最大值要最小。問你分配方案,如果最小值相同情況下有多種分配方案,輸出前面份數小的,就像字典序輸出從小到大一樣的意思。 這裡用到貪心的方法,定義f(x)為真的條件是滿

二分,小化(分塊

  D. Magazine Ad   題意: 給定一個字串和數字k,表示可以最多將這個字串分成k行line[1],line[2]......line[k],分割的位置只能是'-'和空格的位置,問如何分割可以使max_strlen( line[1~k] )最短。 solution:

Mysql分組後以條件獲取其他欄位

需求:按照渠道,城市,省份分組獲取最高訂單日,最高日訂單數 思路:先獲取分組後每組的訂單排序,再給他們的排序附上號數,再連結串列獲取1號的資料欄位 SELECT o.fromType,o.provinceId,o.provinceName,o.cityId,o.cityN