redis常用命令_Redis的简介以及基本常用命令
介紹redis之前,需要先介紹一個(gè)基本概念:NoSQL。意思是Not Only SQL,泛指非關(guān)系型數(shù)據(jù)庫(kù),是隨著互聯(lián)網(wǎng)發(fā)展,為了滿足生產(chǎn)需求而產(chǎn)生的一種新的數(shù)據(jù)庫(kù)理念
在互聯(lián)網(wǎng)發(fā)展早期的時(shí)候,各種傳統(tǒng)的網(wǎng)站都是通過靜態(tài)網(wǎng)頁(yè),來實(shí)現(xiàn)內(nèi)容的展示,并且網(wǎng)頁(yè)和用戶之間是不能互動(dòng)的,而到了web2.0時(shí)代,內(nèi)容流型的社交網(wǎng)絡(luò)產(chǎn)生,用戶也能夠?qū)崟r(shí)互動(dòng),這時(shí)候用傳統(tǒng)關(guān)系型的數(shù)據(jù)庫(kù)就顯得有點(diǎn)乏力了。
a、高并發(fā)讀寫操作
例如微博和微信這種應(yīng)用,在面對(duì)每秒上萬次讀寫需求的時(shí)候,傳統(tǒng)數(shù)據(jù)庫(kù)承載能力達(dá)不到要求。
b、海量數(shù)據(jù)的高效率存儲(chǔ)和訪問
一些用戶體量大的應(yīng)用,可能一個(gè)月就需要插入上億條數(shù)據(jù),對(duì)于關(guān)系型數(shù)據(jù)庫(kù)來說,在一張有海量記錄的表中進(jìn)行查詢,效率是非常低的
c、高可擴(kuò)展性和高可用性
在基于web的架構(gòu)當(dāng)中,數(shù)據(jù)庫(kù)是很難橫向擴(kuò)展的,當(dāng)一個(gè)應(yīng)用的用戶量和訪問量與日俱增的時(shí)候,關(guān)系型數(shù)據(jù)庫(kù)沒有辦法像web服務(wù)器那樣通過添加更多的硬件來搭建負(fù)載均衡,而這時(shí)候?qū)?shù)據(jù)庫(kù)進(jìn)行擴(kuò)展往往就需要停機(jī)維護(hù)或者數(shù)據(jù)遷移。
NoSQL的特點(diǎn)
1.易擴(kuò)展(數(shù)據(jù)之間沒有關(guān)系,容易擴(kuò)展)
2.靈活的數(shù)據(jù)模型(無需事先為數(shù)據(jù)建立字段,存儲(chǔ)時(shí)可自定義格式)
3.大數(shù)據(jù)量,高性能(對(duì)于大數(shù)據(jù)量和高并發(fā)的讀寫具有非常高的性能)
4.高可用(在不太影響系統(tǒng)性能情況下,可使用框架)
Redis
redis就是NoSQL的主流產(chǎn)品之一,它是一個(gè)高性能鍵值對(duì)的內(nèi)存數(shù)據(jù)庫(kù),國(guó)內(nèi)的新浪微博和知乎都在使用它,它的一些常見的應(yīng)用場(chǎng)景
1.緩存
這是redis最為人所知的應(yīng)用場(chǎng)景,他是一個(gè)基于內(nèi)存的數(shù)據(jù)庫(kù),讀寫性能優(yōu)異。
2.消息隊(duì)列
redis中的list是雙向鏈表,消息生產(chǎn)者利用lpush命令將數(shù)據(jù)添加到列表頭部,消息消費(fèi)者可以通過rpop命令從列表尾部取出。
3.應(yīng)用排行榜
相對(duì)于關(guān)系型數(shù)據(jù)庫(kù),使用SortedSet可以更方便地搞定
4.好友關(guān)系
通過集合中的交集、并集和差集運(yùn)算,可以很方便的實(shí)現(xiàn)共同好友、愛好和關(guān)注等
5.計(jì)數(shù)器
數(shù)據(jù)統(tǒng)計(jì)的需求非常常見,而且它的高頻率讀寫也可以讓redis的高性能特征完全發(fā)揮。利用incr原子遞增方法,可以統(tǒng)計(jì)類似點(diǎn)贊數(shù)、評(píng)論數(shù)、瀏覽數(shù)、轉(zhuǎn)發(fā)數(shù),還可以統(tǒng)計(jì)應(yīng)用每天的注冊(cè)人數(shù)等
Redis數(shù)據(jù)類型的常用基本命令
一、字符串(String)
1.SET KEY_NAME VALUE#設(shè)置指定key的值
2.GET KEY_NAME#獲取指定key的值
3.GETSET KEY_NAME VALUE#返回key的舊值并重新設(shè)置新的值
4.DEL KEY_NAME#刪除key
5.INCR KEY_NAME#將指定的key的value值遞增1,如果key不存在,則初始化值為0,如果value的值不能轉(zhuǎn)為整型,則會(huì)報(bào)錯(cuò)
6.DECR KEY_NAME#將指定的key的value值遞減1,如果key不存在,則初始化值為0,如果value的值不能轉(zhuǎn)為整型,則會(huì)報(bào)錯(cuò)
7.INCRBY KEY_NAME INCREMENT#將給定key的value值加上增量值,如果key不存在,則初始化值為0,如果value的值不能轉(zhuǎn)為整型,則會(huì)報(bào)錯(cuò)
8.DECRBY KEY_NAME DECREMENT#將給定key的value值減去減量值,如果key不存在,則初始化值為0,如果value的值不能轉(zhuǎn)為整型,則會(huì)報(bào)錯(cuò)
9.APPEND KEY_NAME VALUE#拼湊字符串,如果 key 存在,就將 value 追加到 key 原來的值的末尾,如果不存在,就創(chuàng)建一個(gè) key value
二、哈希(Hash)
1.HSET KEY_NAME FIELD VALUE為哈希表中的單個(gè)字段賦值,如果表不存在,則創(chuàng)建一個(gè)表并執(zhí)行HSET操作,如果表中的字段已存在,則覆蓋
2.HSET KEY_NAME FIELD VALUE [ FIELD VALUE …]為哈希表中的多個(gè)字段賦值,如果表不存在,則創(chuàng)建一個(gè)表并執(zhí)行HSET操作,如果表中的字段已存在,則覆蓋。
3.HGET KEY_NAME FIELD對(duì)表中的單個(gè)字段取值
4.HMGET KEY_NAME FIELD1 [FIELD2… ]對(duì)表中的多個(gè)字段取值
5.HGETALL KEY_NAME取出全部字段和值
6.HDEL KEY_NAME FIELD1 [ FIELD2… ]刪除表中的一個(gè)或多個(gè)字段
7.HEXISTS KEY_NAME FIELD判斷表中是否存在某字段,有則返回1,沒有返回0
8.HINCRBY KEY_NAME FIELD INCREMENT為表中的字段值加上增量值,如果表不存在,則會(huì)創(chuàng)建一個(gè)新的表并執(zhí)行HINCRBY命令
9.HLEN KEY_NAME獲取表中的字段數(shù)量
10.HKEYS KEY_NAME獲取表中所有的字段
11.HVALS KEY_NAME FIELD VALUE獲取表中所有的值
三、列表(List)
(先挖坑,有時(shí)間來填)
四、集合(Set)
(先挖坑,有時(shí)間來填)
五、有序集合(SortedSet)
(先挖坑,有時(shí)間來填)
總結(jié)
以上是生活随笔為你收集整理的redis常用命令_Redis的简介以及基本常用命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bootstrap table foot
- 下一篇: 前端又要失失失失失失失失失业了!