背景
主要運用
- 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超過當...