??各位小伙伴們大家好,歡迎來到這個小扎扎的Redis 6專欄,在這個系列專欄中我對B站尚硅谷的Redis教程進行一個總結,鑒于 看到就是學到、學到就是賺到 精神,這波依然是血賺 ┗|`O′|┛
💡Redis知識點速覽
- 🍖 Redis相關基礎知識
- 🥩 默認端口號為什么是6379?
- 🥩 與memcached區別以及底層機制
- 🍖 Redis的鍵(key)操作
- 🍖 五大基本類型——字符串(String)
- 🥩 字符串常用命令
🍖 Redis相關基礎知識
🥩 默認端口號為什么是6379?
??6379是九鍵輸入法上MERZ對應的號碼,而MERZ取自意大利歌手、女演員Alessia Merz的名字 ,Redis 作者 Antirez 早年看電視節目的時候,覺得 Merz 在節目中的一些話愚蠢可笑,于是Antirez 就用 "MERZ"來形容愚蠢,然后又重新將其定義為,形容”具有很高的技術價值,包含技藝、耐心和勞動,但仍然保持簡單本質“。等到Antirez 給 Redis 選擇一個數字作為默認端口號時,想都沒想就把 “MERZ” 在手機鍵盤上對應的數字 6379 拿來用了。所以說外國人定義的時候也是真隨意啊,前有Java島的咖啡,后有6379的女演員
🥩 與memcached區別以及底層機制
??Redis默認有16個數據庫,使用索引從0~15定義,使用redis-cli連接上redis的客戶端時默認使用的是0號庫。可以使用select 索引號來切換數據庫,所有庫使用的都是同一個密碼??redis與memcached的區別: memcached支持的數據類型比較單一,redis支持五種數據類型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set 有序集合);memcached只能存儲在內存中并不支持進行持久化操作,redis兩種都可以;memcached使用的是多線程+鎖機制,redis使用的是單線程+多路IO復用機制
??單線程+多路IO復用機制是什么? 以在食堂吃飯為例,我們在賣飯阿姨那交完錢之后拿到自己相對應的號牌,然后在旁邊等著被叫到號才能去吃飯,在等著的時間里還可以刷一刷扎哇太棗糕的博客一點也不耽誤時間。在上面這個案例中,賣飯阿姨和廚后廚之間就是單線程操作,但是賣飯阿姨和我們買飯的人之間就是多路IO復用,多路操作但是并不耽誤在沒被叫到的時候干些別的事情,這樣的話就可以將效率提到最高
🍖 Redis的鍵(key)操作
①查看當前庫的所有key: keys *
②判斷某個key是否存在: exists key
③查看key的類型: type key
④按照key的值進行刪除: del key 、unlink key
??同樣都是按照key的值刪除,兩者的區別就是del key直接刪除,如果此時刪除的數據很大量時就會造成線程阻塞,然而unlink key是非阻塞的異步刪除,當執行這個命令之后,這些使用unlink的K-V就交給異步線程執行del操作,主線程無法再訪問這些K-V,這樣的話就能很快的刪除大量的數據而不至于造成線程阻塞無法做其他操作
⑤設置key的過期時間(秒為單位): expire key seconds
⑥查看該key還有多少秒過期: ttl key ⑥查看當前庫中key的數量: dbsize
⑥清空當前庫的內容: flushdb
⑥清空所有庫的內容: flushall
🍖 五大基本類型——字符串(String)
??String是Redis中最基本的數據類型,它是一種二進制安全的數據類型,這也就意味著Redis中的String可以是任何類型的數據,比如序列化對象、圖片、視頻、音頻等都可以轉換成二進制文件存儲在Redis中,從數據庫中讀出再轉換成圖片、視頻、音頻顯示。Redis基于K-V存儲,一個K-V中的value最大只能是512M
🥩 字符串常用命令
單個添加、獲取
添加一個K-V:
??set key value如果K已存在就 覆蓋原值
??setnx key value如果K已存在就添加失敗
通過K值查詢V: get key添加的同時設置過期時間:
??setex key seconds value
修改key的值并返回修改之前的值:
??getset key value多個添加、獲取
添加多個K-V:
??mset k v k v … 如果K已存在就覆蓋原值
??msetnx k v k v … 如果K已存在就添加失敗
通過多個K查詢它們的V: mget k k k截取添加、獲取
設置K值的V從索引位置開始覆蓋字符串:
?? setrange key from substr
通過K值查詢V的范圍內子串:
??getrange key from to 左閉右閉
其他
在K對應的V后面追加內容:
??append key value如果K不存在就新建一個K-V
獲取K對應的K的長度: strlen keyK對應的V加一減一,V必須是integer為空的話默認為0:
??incr key加一decr key減一
K對應的V加幾減幾,V必須是integer為空的話默認為0:
??incrby key num加幾decrby key num減幾