redis-bit-mapに関するコマンドと一般的なシーンについて説明します
3111 ワード
紹介
関連コマンド(5種類) 一般的なシーン1製品レビュー総数、称賛数統計 2アクティブユーザ統計
redis-Bit-Map
の関連コマンドと共通シーン関連コマンド(5種類)
SETBIT key offset value
key offsetオフセット位置value 0または1を設定GETBIT key offset
セットキーoffsetオフセット位置を取得するvalueは0または1を返しますBITCOUNT key [start end]
keyを取得したvalueは1の総数、[start end]はオプションパラメータで範囲を設定できます.ここで注意したいのは、startとendでbyteが使用されsetとgetが使用するbitは、8:1の関係です.BITOP OP destkey srckey1 srckey2 srckey3 ... srckeyN
ここOP
に設定可能AND( )
、OR( )
、XOR( )
およびNOT( )
、destkey
はkey
の名称、srckey1-N
は計算用bitmapkey
値です.BITPOS key bit [start] [end]
1または0に設定された1文字列の最初の点を返す位置$redis = new redis();
$redisHost = $this->GetRedisHttpLink();
$redis->connect($redisHost, 6379);
$key = 'comment'.$data['KeyNO'].$data['CommentTypeID'];
$uid = $data['UID'];
$redis->setBit($key, $uid, 1);
echo $redis->getBit($key, $uid ) . PHP_EOL;
echo ' :' . $redis->bitCount($key);exit();
$key1 = 'Userlogin2017-08-01';
$key2 = 'Userlogin2017-08-02';
$key3 = 'Userlogin2017-08-03';
## 8 1 8 2
$redis->setBit($key1, $uid, 1);
$redis->setBit($key2, $uid, 1);
## bitmap 1 2
$redis->bitOp('AND','8182',$key1,$key2);
$both_active = $redis->bitCount('8182');
## bitmap 1 2 3
$redis->bitOp('OR','818283',$key1,$key2,$key3);
$other_active = $redis->bitCount('818283');
Bit-Mapは、多くの場合に使用され、記録値は操作そのものに関係なく、結果に関連するイベントです.たとえば、「いいね」、「数の統計」、「アクティブ値」、「結果に関連」、つまり結果統計のイベントを0または1で表すことができます.昔の人と縄張りをして時間を記録するのと同じように、縄張りをしていいねという事件を記録することもできます.