redis高併發下的處理考勤打卡資料

2021-10-01 09:18:31 字數 3592 閱讀 5858

背景

主要運用

-   1.redis:hset,del,hkeys...

- 2.定時任務

- 3.注意:設計時,是以每天為單位,非同步同步redis快取資料到mysql。

**模組
<?php

/** * created by phpstorm.

* user: fengyun

* date: 2019/12/6

* time: 9:47

*/use illuminate\support\facades\config;

use illuminate\support\facades\redis;

class redisbaseservice extends comservice

private function _getenable()

/*** 查詢key

* @param $key

* @return mixed

*/public function keys($key)

/*** 設定位圖

* @param $key

* @param $offset

* @param bool $value

* @param int $time

*/public function setbit($key, $offset,$value,$time=0)

return $result;

}/**

* 獲取位圖

* @param $key

* @param $offset

* @return mixed

*/public function getbit($key,$offset)

/*** 統計位圖

* @param $key

* @return mixed

*/public function bitcount($key)

return $this->redis->bitcount($key);

}/**

* 位圖操作

* @param $operation

* @param $rekey

* @param array ...$key

* @return mixed

*/public function bitop($operation,$rekey,...$key)

return $this->redis->bitop($operation,$rekey,$key);

}/**

* 計算在某段位圖中 1或0第一次出現的位置

* @param $key

* @param $bit 1/0

* @param $start

* @param null $end

* @return mixed

*/public function bitpos($key,$bit,$start,$end=null)

return $this->redis->bitpos($key,$bit,$start,$end);

}/**

* 刪除位圖

* @param $key

* @return mixed

*/public function del($key)

/*** 寫入

* @param $key

* @param $hashkey

* @param $value

* @return bool

*/public function hset($key, $hashkey, $value )

/*** 批量獲取

* @param $key

* @return bool

*/public function hgetall($key)

/*** @param $key

* @param $hashkey

* @return bool

*/public function hexists($key,$hashkey)

/*** @param $key

* @return bool

*/public function hkeys($key)

/*** @param $key

* @return bool

*/public function hlen($key)

/*** 管道技術批量入庫

echo '耗時'.round($end-$start,3)."秒

"; echo '記憶體(now memory_get_usage): ' . memory_get_usage() . "

"; return true;

}}

<?php

/** * 定時任務入庫

* created by phpstorm.

* user: fengyun

* date: 2019/12/6

* time: 10:50

*/class cronsignlogservice extends comservice

public static function addusersignlogtomysql()

// var_dump($data);die;

try}

}return $is_success;

}catch (\exception $e)

}}注:定時同步redis資料到mysql資料庫。這裡同步資料時,可以採用佇列非同步同步到msyql,根據自己喜歡而定。

總結
高併發下快取資料庫不為是乙個很好的抗壓工具,建議多使用,切勿濫用!

springboot下redis高併發下的快取穿透

public responsebody string getclassesbyid pathvariable id integer id return redistemplate.opsforvalue get classes 從redis中拿 這樣看單機條件下沒有問題但是高併發下還是會存在多個使用...

高併發下商城秒殺活動的處理

秒殺搶購活動是現在很多 常見的營銷手段,小公尺搶購 的整點免單 聚划算等都是成功的例子。從簡單處著手,秒殺是很好理解的 設定要秒殺的商品的數量,搶完為止。但是,實際應用中一瞬間的高併發壓力 以及併發帶來的負庫存是要著重考慮。要避免負庫存的出現,可以在資料庫加鎖,不管外部多少請求,都可以在資料庫操作前...

高併發下的HashMap

1.hashmap在插入元素過多的時候需要進行resize,resize的條件是 hashmap.size capacity loadfactor。2.hashmap的resize包含擴容和rehash兩個步驟,rehash在併發的情況下可能會形成鍊錶環 hashmap進行儲存時,假設size超過當...