淘寶當天新店旺旺採集軟體 新開店鋪連結提取工具分析

孫哥說天下發表於2021-03-10

Redis資料結構

redis是一個C語言開發的高效能的記憶體型鍵值對NoSql資料庫


5種常見資料型別

字串String

能表示字串、整數、浮點數

常見操作


set key value

get key

getset key value

setnx key value

append key value 向尾部追加

strlen key

incr key

incrby key increment 增加指定整數

decr

10.decrby key increment

集合 set

無序唯一元素,個數2^32-1


sadd key m1 m2

srem

smembers

spop

srandmember

scard

sismember

sinter

sdiff

10.sunion

適用於不能重複且不需要順序結果的資料結構,比如spop隨機抽獎


有序集合 sorted set

zset 有序集合,元素本身是無序不重複

zadd

zrem

zcard

zcount

zincrby

zscore

zrank

zrevrank

zrange

zrevrange


可以用於各種排行榜


列表

list可以表述儲存有序、可重複元素,最多為2^32-1個元素,為一個雙向連結串列,可作為棧或佇列使用


lpush/rpush key v1 v2

lpop/rpop key

lpushx key v1 將值插入到列表頭部

rpushx

blpop key timeout 空時候阻塞

brpop

llen

lindex key index

lrange

lrem key count value

lset key index vallue

ltrim

rpoplpush key1 key2

brpoplpush

linsert

Hash雜湊

是一個string型別的field和value對映表,提供了欄位和欄位值對映


hset

hmset

hsetnx

hexists

hget

hmget

hgetall

hdel

hincrby

10.hlen

3種不常見資料型別

bitmap點陣圖型別

bitmap是進行位操作的,透過一個bit位來表示某個元素對應的值或者狀態,其中key就是對應元素本身。bitmap本身會極大節省儲存空間


setbit key offset value 設定key在offset處的bit值

getbit key offset 獲得key在offset處的bit值

bitcount key 獲得key的bit位位1的個數

bitpos key value 返回第一個被設定為bit值得索引值

bittop and/or/xor/not destkey key [key…] 對多個key進行邏輯後運算後存入destkey中

應用場景:

6. 每月使用者簽到,使用者id為key,日期作為偏移量1表示簽到

7. 統計活躍使用者,日期為key,使用者id為偏移量1表示活躍

8. 查詢使用者狀態,日期為key,使用者id為偏移量1表示線上


geo地理位置型別

redis用來處理位置資訊,原理是Z階曲線。在x,y軸上的十進位制轉換成二進位制數,採用x軸和y軸對應的二進位制數依次交叉後得到一個六位數編碼。把數字從小到大依次連線起來的曲線稱為Z階曲線,Z階曲線是吧多維轉換成1維的一種方式,然後利用Base32這種資料編碼機制,主要用來把二進位制資料編碼成可見字串


geoadd key 經度 緯度 成員名稱1 經度1 緯度1 成員名稱2

geohash key 成員名稱1 成員名稱2 返回標準的hash串

geopos key 成員名稱1 成員名稱2

geodist key 成員1 成員2

georadiusByMember key 成員 值單位 根據成員查詢附近的成員

應用場景:記錄地理位置,計算距離,查詢“附近的人”


stream資料流型別

stream 是redis5.0之後新增的資料結構,用於可持久化的訊息佇列,幾乎滿足了訊息佇列的全部內容,包括: 訊息ID的序列化生成、訊息的遍歷、訊息的阻塞和非阻塞讀取、訊息的分組消費、未完成訊息的處理、訊息佇列得監控


xadd key id<*> field1 value1

xread

xrange

xrevrange

xdel

xgroup create/destroy key

xgroup delconsumer key groupname cname

xreadgroup group groupname consumer count streams key

Redis常用命令

keys pattern 返回滿足指定pattern的所有key

del key

exists key

expire key ttl 指定key的過期時間

rename oldkey newkey

type key

Redis過期機制

快取過期和淘汰策略

redis效能影響因素

長期使用,key會不斷增加,redis作為快取使用,實體記憶體也會滿

記憶體與硬碟交換,虛擬記憶體,頻繁IO效能急劇下降


redis設定maxmemory

不設定場景:Redis的key是固定的,不會增加,作為DB使用,保證資料完整性,不能淘汰,可以做叢集,便於橫向擴充套件。快取淘汰策略:禁止驅逐maxmemory-policy noeviction

設定場景:redis作為快取使用,不斷增加key,一般設定為實體記憶體的3/4在redis.conf中maxmemory 1024mb,如果設定了maxmemory,那麼久需要設定 maxmemory-policy



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990899/viewspace-2762068/,如需轉載,請註明出處,否則將追究法律責任。

相關文章