導航:首頁 > 程序命令 > 清除redis緩存命令

清除redis緩存命令

發布時間:2024-07-19 07:06:59

㈠ windows怎麼清空redis緩存

1. 加內存
2. 縮短(或設置)數據過期時間,以釋放內存
3. redis集群

㈡ 在不影響性能的情況下,怎麼快速批量刪除redis數據

業務場景:redis數據切換到Oracle,取消持久化,redis只做緩存

具體需求:從redis從庫里獲得了400w個無過期時間的hashkey,需要在主庫中將其刪除

矛盾點:
1.如果直接批量刪除會導致redis擁塞,影響正常業務
2.如果每刪除一個key,sleep50ms,不會影響業務,但是根據經驗要跑兩天

最終問題:在不影響性能的情況下,怎麼快速批量刪除redis數據?


Redis刪key刪得飛快,400w也不在話下。我懷疑其實瓶頸在於網路。

如果你是一個一個key刪的,每次發送一個命令都會導致客戶端等待redis的回復,浪費了大量網路帶寬。

可以試試用pipelining/transactions。在不飽和redis端網路帶寬的前提下,以最大速度發送命令,然後一次執行。

如果這都不行的話,可以寫一個Lua腳本,識別並刪除無用的key,發送到redis用eval執行。這樣應該不會阻塞網路。

如果這樣還是影響業務的話。。終極解決方案是創建一個master/slave,在slave上刪除key,而將請求用master處理。刪完key之後把slave晉升成master,再將請求轉向它。

2014年07月24日回答


滕亦飛1.3k

嘗試下 redis 的 eval 命令。

例如刪除 old-fashioned: 開頭的所有 KEY

eval "redis.call('del', unpack(redis.call('keys','old-fashioned:*')))" 0

如果單次刪除性能消耗大,可以考慮分批刪除。

㈢ 深入了解Redis操作五大數據類型常用命令

我們知道Redis默認有16個資料庫,默認是第0個資料庫,那麼如果在需要對資料庫進行切換的時候,我們就可以使用下面這個命令:


使用如下命令進行切換

如果想要清除指定某一個資料庫的數據


清除所有資料庫的數據

接下來這個命令應該是最常用的了

平常在開發中,我們還需要經常對key進行判斷,判斷其是否存在

因為我們設置的緩存數據一般都不能是永久的,這個時候就需要我們在存儲數據的時候,就為其設置過期時間。

string類型是Redis中五大基本數據類型之一,這也是最常使用到的一個數據類型,所有很多小夥伴們對Redis的認識和操作就僅僅的停留在了對Redis的操作層面,但是你是否知道string類型中的相關命令,還是有非常多實用的

接下來先看一下對string類型進行基本存儲和獲取的命令。

如果我們存儲的string中的內容是數字的話,我們也可以對其進行增或減操作,Redis可以自動的對字元串進行相關的操作。實現的命令如下:

使用msetnx時,同時設置一個或多個 key-value 對,當且僅當所有給定 key都不存在時才成立。

getset命令從字面意思就可以看出來,他的作用是先get再set。


總結string類似的使用場景:

在使用list類型進行存取的時候,有兩個命令需要進行區分:

注意:只有pop和push才分左右,其他的l都是list的意思

總結:

總結set集合一般用於元素的不重復的場景,比如抽獎系統,輪播等場景下

在使用hash集合的時候,要注意,hash其實就是一個Map集合,key-map的時候,值是一個map集合的形式進行存儲的,也和Java中的hashmap有一個類似。


HVALS獲取所有的value,HKEYS獲取所有的key,HGETALL獲取所有的鍵值


總結:

hash可以用於存儲變更的數據,比如user,name,age等,尤其是用戶信息之類的,hash更加適合用於對象的存儲,string更加適合用於字元串的存儲。

在set集合的基礎上增加一個序列號,來進行排序


ZRANGEBYSCORE使用語法


總結


以上是在對五種數據類型進行存取時的一些常用命令操作。關於其他的命令使用,小夥伴們在用到的時候可以直接入官網查看就可以了。

python怎樣清除redis緩存

想要查看一個db下有多少key,在Redis-cli中輸入 keys * 即可
如果想刪除某個key 可以使用del 命令 例如: del key delkey(你要刪除的key的名稱)
那麼Python如何來查看呢?
[cpp] view plain
# coding=utf-8
'''
Created on 2015-9-8

@author: kwsy
'''
import redis

pool=redis.ConnectionPool(host='192.168.1.126',port=6379,db=0)
r = redis.StrictRedis(connection_pool=pool)

keys = r.keys()
print type(keys)
print keys

keys的type是 list ,所有的key將存入這個list作為結果返回
如果想返回特定形式的key,可以在keys()函數中添加參數,例如keys = r.keys("finger*") 那麼將只返回以finger開頭的key
key的刪除也非常簡單
[cpp] view plain
# coding=utf-8
'''
Created on 2015-9-8

@author: kwsy
'''
import redis

pool=redis.ConnectionPool(host='192.168.1.126',port=6379,db=0)
r = redis.StrictRedis(connection_pool=pool)
r.delete("del1","del2")

我這里是同時刪掉兩個key

閱讀全文

與清除redis緩存命令相關的資料

熱點內容
加密裁判怎麼做 瀏覽:578
app更新怎麼選擇更新途徑 瀏覽:786
什麼叫專屬獨立伺服器 瀏覽:309
程序員學吉他的好處 瀏覽:708
重要的文件夾刪除了怎麼找回 瀏覽:372
ecshop源碼論壇 瀏覽:593
編譯原理DAG例子 瀏覽:164
光谷程序員的酒店 瀏覽:8
客戶端密碼存在文件夾哪個位置 瀏覽:380
怎麼把程序員的工作說的高大上 瀏覽:723
解壓包如何加密 瀏覽:158
蘋果app隱私報告怎麼關 瀏覽:668
單片機什麼程度能接項目 瀏覽:698
內核編譯小米5s 瀏覽:554
加密機可以接多少系統 瀏覽:904
python函數返回值返回元組 瀏覽:650
單片機按鍵代碼 瀏覽:720
步步高手機門禁卡加密 瀏覽:22
學習python的最好方法 瀏覽:777
linuxgpio應用 瀏覽:686