lpush key value
作用: 把值插入到鏈結頭部
rpop key
作用: 返回並刪除鍊錶尾元素
rpush,lpop: 不解釋
lrange key start stop
作用: 返回鍊錶中
[start ,stop]
中的元素
規律: 左數從0開始
,右數從
-1開始
lrem key count value
作用: 從
key鍊錶中刪除
value值
注: 刪除
count
的絕對值個
value
後結束
count>0 從表頭刪除
count<0 從表尾刪除
ltrim key start stop
作用: 剪下
key對應的鏈結,切
[start,stop]一段,
並把該段重新賦給
key
lindex key index
作用: 返回
index
索引上的值,
如 lindex key 2
llen key
作用:計算鏈結表的元素個數
redis 127.0.0.1:6379> llen task
(integer) 3
redis 127.0.0.1:6379>
linsert key after|before search value
作用: 在
key鍊錶中尋找』search』,並在
search
值之前|
之後,.
插入value
注: 一旦找到乙個
search後,
命令就結束了
,因此不會插入多個
value
rpoplpush source dest
作用: 把
source
的尾部拿出,放在
dest
的頭部,
並返回該單元值
場景: task + bak 雙鏈表完成安全佇列
task列表
bak列表
業務邏輯:
1:rpoplpush task bak
2:接收返回值
,並做業務處理
3:如果成功
,rpop bak
清除任務
.如不成功
,下次從
bak表裡取任務
brpop ,blpop key timeout
作用:等待彈出
key的尾
/頭元素,
timeout為等待超時時間
如果timeout為
0,則一直等待
場景: 長輪詢
ajax,
,能夠用到
setbit 的實際應用
場景: 1億個使用者
,每個使用者 登陸
/做任意操作
,記為 今天活躍
,否則記為不活躍
每週評出: 有獎活躍使用者:連續
7天活動
每月評,等等
...
思路:
userid dt active
1 2013-07-27 1
1 2013-0726 1
如果是放在表中, 1:表急劇增大
,2:要用
group ,sum運算,
計算較慢
用: 位圖法
bit-map
log0721: 『011001...............0』
log0726 : 『011001...............0』
log0727 : 『0110000.............1』
1: 記錄使用者登陸:
每天按日期生成乙個位圖, 使用者登陸後,把
user_id
位上的bit
值置為1
2: 把
1周的點陣圖
and計算,
位上為1的
,即是連續登陸的使用者
redis 127.0.0.1:6379> setbit mon 100000000 0
(integer) 0
redis 127.0.0.1:6379> setbit mon 3 1
(integer) 0
redis 127.0.0.1:6379> setbit mon 5 1
(integer) 0
redis 127.0.0.1:6379> setbit mon 7 1
(integer) 0
redis 127.0.0.1:6379> setbit thur 100000000 0
(integer) 0
redis 127.0.0.1:6379> setbit thur 3 1
(integer) 0
redis 127.0.0.1:6379> setbit thur 5 1
(integer) 0
redis 127.0.0.1:6379> setbit thur 8 1
(integer) 0
redis 127.0.0.1:6379> setbit wen 100000000 0
(integer) 0
redis 127.0.0.1:6379> setbit wen 3 1
(integer) 0
redis 127.0.0.1:6379> setbit wen 4 1
(integer) 0
redis 127.0.0.1:6379> setbit wen 6 1
(integer) 0
redis 127.0.0.1:6379> bitop and res mon feb wen
(integer) 12500001
如上例,優點:
1: 節約空間
, 1億人每天的登陸情況,用
1億bit,
約1200wbyte,
約10m
的字元就能表示
2: 計算方便
線性結構 鍊錶
鍊錶 一元多項式求導 20分 設計函式求一元多項式的導數。以指數遞降方式輸入多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。以與輸入相同的格式輸出導數多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。3 4 5 2 6 1 2 012 3 10 1 6 0 ...
常見鍊錶結構
線性表,有順序儲存結構 和鏈式儲存結構兩種,常見實現為一維陣列和單鏈表。效能對比查詢 插入和刪除 順序 o 1 順序 o n 單鏈表 o n 單鏈表 o 1 顯然,順序儲存結構適用於查詢,鏈式儲存結構適合於插入和刪除操作,各有優缺點。上述兩種都比較簡單,實現本文不介紹,略提一下優缺點。接下來介紹其他...
迴圈鍊錶結構
在單鏈表結構上,在第1個節點插入和刪除,只不過是第i個節點的插入和刪除的特殊情況。這些情況只所以特殊,是因為head指標必須重置。可以使用乙個帶有啞頭節點迴圈鍊錶結構來簡化這些操作。迴圈鍊錶結構包含了從結構中的最後乙個節點返回到第乙個節點的鏈結。在這個實現中,至少總是有乙個節點。這個節點也就是啞頭節...