現在很多碼農都有接觸到redis,但是在使用Redis的時候也會遇到一些bug一些坑,接下來就跟大家盤點一下。
復制積壓緩沖區是個有限的環形緩沖區 當主節點把復制積壓緩沖區寫滿后,會覆蓋緩沖區中的舊命令數據。如果從節點還沒有同步這些舊命令數據,就會造成主從節點間重新開始執行全量復制。Redis默認有16個倉庫,編號從0至15. 通過配置文件可以設置倉庫數量,但是不超過16,并且不能自定義倉庫名稱。
Redis 是一個開源的緩存服務,如果沒有設置密碼,可能會導致重要數據被篡改或者泄露,所以在使用 Redis 時,要設置密碼來保證數據的安全。緩存穿透是指查詢數據庫和緩存都無數據,因為數據庫查詢無數據,出于容錯考慮,不會將結果保存到緩存中,因此每次請求都會去查詢數據庫,這種情況就叫做緩存穿透。
KEYS 可能是在 Redis 中學習的第一個批命令之一,但不要在生產環境中使用,如果只有少量key,這并不是什么大問題。當你有幾十個key時,編寫一個依賴于 KEYS 的應用程序是可以的,但是隨著key的數量越來越多,這個操作需要的時間越來越長。KEYS 是一個同步命令,其它任何操作都將無法進行,整個Redis實例將阻塞。
正常的情況是一個線程使用一個Jedis連接,可以使用JedisPool管理Jedis連接,實現線程安全,避免出現這種情況。例如,下面代碼就是兩個線程共用了一個Jedis連接。