1.什么是Redis
? ? ? ?Redis 是一個(gè)速度非陈阄ィ快的非關(guān)系型數(shù)據(jù)庫(non-relational database),它可以存儲(chǔ)鍵與5種不同類型的值之間的映射,可以將存儲(chǔ)在內(nèi)存的鍵值對(duì)數(shù)據(jù)持久化到硬盤嗅义,可以使用復(fù)制特性來擴(kuò)展讀性能,還可以使用客戶端分片來擴(kuò)展寫性能媳维。
2.Redis與其他軟件的區(qū)別
3.為什么要使用Redis
1.對(duì)比Memcached济锄,元素列表的CRUD比較
memcached使用APPEND命令來管理元素列表绒净,用戶可以將元素追加到一個(gè)字符串的末尾,并將那個(gè)字符串當(dāng)作列表來使用洽议。但刪除這些元素時(shí)宗收,memcached采用的辦法是通過黑名單來隱藏列表里面的元素,從而避免對(duì)元素執(zhí)行添加或刪除等操作亚兄。
相反镜雨,redis的LIST和SET允許用戶直接添加或者刪除元素
2.存儲(chǔ)長(zhǎng)期的報(bào)告數(shù)據(jù)時(shí),并將這些報(bào)告數(shù)據(jù)用作固定時(shí)間范圍內(nèi)的聚合數(shù)據(jù)場(chǎng)景
一般的做法是:先將各個(gè)行插入一個(gè)報(bào)告表里面儿捧,之后再通過掃描這些行來手機(jī)聚合數(shù)據(jù)荚坞,并根據(jù)收集到的聚合數(shù)據(jù)來更新聚合表中已有的那些行。插入行的速度非撤贫埽快颓影,因?yàn)橹粫?huì)在硬盤文件末尾進(jìn)行寫入動(dòng)作。但是對(duì)表里面的行進(jìn)行更新卻很慢懒鉴,因?yàn)椴粌H要磁盤隨機(jī)讀诡挂,還可能要磁盤隨機(jī)寫操作碎浇。
Redis就可以通過INCR命令及其變種來計(jì)算聚合數(shù)據(jù),并且因?yàn)镽edis將數(shù)據(jù)存儲(chǔ)在內(nèi)存里璃俗,而且發(fā)送給Redis的命令請(qǐng)求并不需要經(jīng)過典型查詢分析器或者查詢優(yōu)化器進(jìn)行處理奴璃,所以Redis存儲(chǔ)的數(shù)據(jù)執(zhí)行隨機(jī)寫的速度總是非常迅速的。
4.Redis的安裝(linux系統(tǒng))
安裝redis需要c語言的編譯環(huán)境城豁。如果沒有g(shù)cc需要在線安裝苟穆。yum install gcc-c++
安裝步驟:
第一步:redis的源碼包上傳到linux系統(tǒng)。
第二步:解壓縮redis唱星。
第三步:編譯雳旅。進(jìn)入redis源碼目錄。make
第四步:安裝间聊。make install PREFIX=/usr/local/redis
PREFIX參數(shù)指定redis的安裝目錄攒盈。一般軟件安裝到/usr目錄下。
連接redis
redis的啟動(dòng):
前端啟動(dòng):在redis的安裝目錄下直接啟動(dòng)redis-server
[root@localhost bin]# ./redis-server
后臺(tái)啟動(dòng):
把/root/redis-3.0.0/redis.conf復(fù)制到/usr/local/redis/bin目錄下
[root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis/bin/
修改上面復(fù)制的redis.conf:
[root@localhost redis-3.0.0]# vi redis.conf
#啟動(dòng)redis
[root@localhost bin]# ./redis-server redis.conf
查看redis進(jìn)程:
[root@localhost bin]# ps aux|grep redis
root????? 5190? 0.1? 0.3? 33936? 1712 ???????? Ssl? 18:23?? 0:00 ./redis-server *:6379???
root????? 5196? 0.0? 0.1?? 4356?? 728 pts/0??? S+?? 18:24?? 0:00 grep redis
[root@localhost bin]#
連接和關(guān)閉連接redis:
使用Redis-cli進(jìn)行連接:
[root@localhost bin]# ./redis-cli
默認(rèn)連接localhost運(yùn)行在6379端口的redis服務(wù)哎榴。
[root@localhost bin]# ./redis-cli -h 192.168.25.153 -p 6379
-h:連接的服務(wù)器的地址
-p:服務(wù)的端口號(hào)
關(guān)閉redis:
[root@localhost bin]# ./redis-cli shutdown
5.Redis數(shù)據(jù)類型的用法
String:
常用命令:
GET:獲取存儲(chǔ)在給定鍵中的值
SET:設(shè)置存儲(chǔ)在給定鍵中的值
DEL:刪除存儲(chǔ)在給定鍵中的值
LIST:
RPUSH:將給定值推入列表的右端
LRANGE:獲取列表在給定范圍上的所有值
LINDEX:獲取列表在給定位置上的單個(gè)元素
LPOP:從列表的左端彈出一個(gè)值型豁,并返回被彈出的值
SET:
SADD:將給定元素添加到集合
SMEMBERS:返回集合包含的所有元素
SISMEMBER:檢查給定元素是否存在于集合中
SREM:如果給定的uansu存入于集合中,那么移除這個(gè)元素
HASH:
HSET:在散列里面關(guān)聯(lián)起給定的鍵值對(duì)
HGET:獲取指定散列鍵的值
HGETALL : 獲取散列包含的所有鍵值對(duì)
HDEL:如果給定鍵存在于散列里面尚蝌,那么移除這個(gè)鍵
ZSET:
ZADD:將一個(gè)帶有給定分?jǐn)?shù)的成員添加到有序集合中
ZRANGE:根據(jù)元素在有序排列中所處的位置偷遗,從有序集合里面獲取多個(gè)元素
ZRANGEBYSCORE : 獲取有序集合在給定分值范圍內(nèi)的所有元素
ZREM:如果給定成員存在于有序集合,那么移除這個(gè)成員