redis簡單理解

市面上不少存儲系統和編程語言內部使用CAS機制實現計數功能,會有必定的cpu開銷,但在redis徹底不存在這個問題php

redis爲何單線程還能保持操做如此之快:java

1.純內存方法,全部數據放在內存中,內存的響應時長大約爲100納秒,這是redis達到秒萬級別訪問的最重要基礎node

2.非阻塞I/O,epoll模型,再加上redis自身的事件處理模型將epoll中的鏈接,讀寫,關閉都轉換爲事件python

3.單線程避免了線程切換和競態產生的消耗c++

redis特性:速度快,基於鍵值對的數據結構服務器,豐富的功能,簡單穩定,客戶端語言多(java,php,python,c,c++,nodejs等),持久化(RDB,AOF),主從複製,高可用和分佈式(redis sentinel)redis

redis使用場景:計數器,排行榜系統,緩存,社交網絡,消息隊列系統數據庫

redis不能夠使用場景:數據量很是大(每日幾億用戶行爲數據),冷數據(不常使用的數據,內存的消耗)編程

redis默認端口號6379  緩存

通用全局命令:服務器

keys * 查看全部的健

dbsize 返回當前數據庫中健的總數,時間複雜度0(1),不會遍歷全部健,並且直接獲取redis內置的健總數變量

exists key 是否存在,存在1,不存在0

del key 刪除,返回刪除key的個數

expire key seconds 設置過時時間 秒

ttl 返回鍵的剩餘過時時間,-1 未設置過時時間 -2 不存在,大於等於0 剩餘過時時間

type key 健的數據結構類型(string,list,hash,set,zset) ,實際上每種數據類型都有對應的合適的內部編碼

相關文章
相關標籤/搜索