<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
redis有很多的使用者端連線進來,站在redis所在機器的角度來說,就是有很多socket的連線,並且是打在核心
上面的,redis是一個程序,程序可以呼叫核心上的epoll,來遍歷尋找哪一個使用者端傳送資料過來了(這裡是單程序單執行緒來處理使用者資料的)。
redis預設有16個庫
輸入:
進入基本分組
keys * 查詢所有的key
FLUSHDB 清除所有的key
對於如上nx的命令是我當前的key如果沒有被設定則把ooxx給設定成功,如果設定的key已經有value了,
則返回nil (多用於分散式鎖的獲取,只能有一個獲取成功)
對於xx命令,只有存在的時候才能進行操作。
mset命令(設定多個key和value)
append命令以及getrange命令
redis正反向索引
前面是從0,1,2開始的,後面則是從-1開始遞減的,所以也可以按照下面方式寫
SETRANGE 在給定範圍設定字串:
獲取字串長度:
獲取key所對應的value型別(主要是看set命令分組是在string上面的)
再來看一下object命令
它可以檢視value的編碼型別(面向 redis string型別,除了字串操作還有計算的操作【計算的操作面向數值的】)
incr和decr相關命令【可用於搶購,秒殺,點贊,評論數,詳情頁(比如說淘寶詳情頁,一定會後端發起一個非同步查詢購買數等,查redis,可以規避並行下,對資料庫的事務操作,
完全由redis記憶體操作代替)】
redis程序與外界互動的時候,面向流我們有位元組流,以及字元流,那麼redis使用者端
存取的時候,從socket裡面拿到的是位元組流的資料,只要未來的雙方使用者端和伺服器端有同樣的
編解碼方式,資料就不會被破壞。
如 set k1 = 9999,執行strlen 輸出4,redis裡面存這個資料是按照一個字元一個位元組來存入的,直接
向字元流去寫,執行incr之後是先把位元組流拿出來轉換成數值的,轉換成數值之後會更新key的encoding
編碼,只要加成功就更新成int了,如果下次加的話就可以直接檢查這個encoding型別了,如果加的數
不是int型別則報錯
另一種如 set k2 中,是佔3個位元組的(軟體和redis通訊用的utf-8)
我們再設定一個k3佔2個位元組(gbk編碼)
然後退出用redis-cli --raw來登入,會觸發一個格式化(如果不帶上–raw是隻會識別ascii碼的,超出部分則按照16進位制來展示的,如果加上raw則會觸發編碼集的格式化)
key上有encoding的話,就相當於做了一個優化,來判斷我當前這個操作是否是可行的
getset命令是將舊的值返回並將新的值給設定進去,(相對於get 和set單獨執行的話,要發兩個單獨
的命令過去,IO通訊兩次,而這種方式只通訊了一次【節省資源】)
mset 設定多個key多個value
msetnx (設定多個key對應的value保證原子性)下面的圖中msetnx 在設定k3的時候失敗了
setbit 方法,在對應的bit位上面設定值
bitpos命令:
找到第一個位元組 中第一個1出現的位置
找到第二個位元組出現1的第一個位置
統計1在位元組範圍出現了幾次:
bitop 命令可以按位元對value進行與和或等運算
1、公司有使用者系統,統計使用者的登入天數,且視窗隨機(某天往前推一週,以及往後推一週,使用者登入的天數統計一下)
一年設定為400天,可以使用50個位元組存使用者全年的登入狀態
-2 和-1為最後兩個位元組(查詢300天到第400天)登入多少次。【讓使用者為key登入天數為value】
當然如果覺得使用者量特別大的話可以考慮一部分使用者存一個redis,另一部分
存另一個redis【注:1個使用者50個位元組,那麼20個使用者存1k的空間,20000個使用者越需要1MB的空間
2000000個使用者則需要100M的空間】
2、京東618做活動送禮物,大庫備貨多少個禮物?假設有2E使用者
1、對使用者做分類(分為殭屍使用者 冷熱使用者/忠誠使用者)
所以需要做活躍使用者統計,
什麼是活躍使用者:
比如說 1號-3號 連續登入 對重複登入的去重
redis如何做
首先在2022年1月1日id為1的使用者登入了 給bit位的1位上設定1
在2022年1月2日id為1和id為7的使用者登入了分別在bit位1和bit位7上設定1
key的type型別,是用於判斷存取的方法是不是具備這個型別的操作,可以快速返回錯誤,可以規避
異常。
encoding是可以規避同一種type型別但是根據不同的表現形式做計算這件事,
還有length屬性,如果資料未發生改變可以直接返回長度
到此這篇關於redis的string型別及bitmap介紹的文章就介紹到這了,更多相關redis的string型別 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45