Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)贞间、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型粹懒、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API顷级。它不僅支持簡(jiǎn)單的字符串鍵值對(duì)凫乖,還提供了一系列數(shù)據(jù)結(jié)構(gòu)類(lèi)型值,比如列表弓颈、哈希拣凹、集合和有序集,并在這些數(shù)據(jù)結(jié)構(gòu)類(lèi)型上定義了一套強(qiáng)大的API 恨豁。接下來(lái),我們來(lái)看看如何在Windows下安裝和使用Redis爬迟。
Redis在Windows下的安裝
1.下載Windows版的Redis
訪問(wèn)Redis官網(wǎng)或直接前往GitHub:https://github.com/MSOpenTech/redis下載相應(yīng)版本的壓縮包橘蜜。直接解壓。
2.啟動(dòng)服務(wù)器
Win+R快捷鍵,輸入CMD计福,進(jìn)入CMD窗口跌捆,進(jìn)入解壓后文件所在路徑,并輸入以下指令:
redis-server.exe redis.windows.conf
如圖象颖,則服務(wù)啟動(dòng)成功佩厚。
3.啟動(dòng)客戶(hù)端
Win+R快捷鍵,輸入CMD说订,重新打開(kāi)一個(gè)CMD窗口抄瓦,進(jìn)入解壓后文件所在路徑,并輸入以下指令:
redis-cli.exe
如果設(shè)置了登錄密碼陶冷,則需要再輸入密碼才能登陸成功钙姊。
auth yourPasspord
如圖所示:
Redis常用命令
1.設(shè)置
設(shè)置密碼
CONFIG SET requirepass myPassword # 將密碼設(shè)置為 myPassword
清空密碼
CONFIG SET requirepass "" # 通過(guò)將密碼設(shè)為空字符來(lái)清空密碼
測(cè)試客戶(hù)端和服務(wù)端連接
ping
連接正常,返回一個(gè)PONG埂伦,不正常煞额,返回錯(cuò)誤信息:Could not connect to Redis at 127.0.0.1:6379: Connection refused
退出客戶(hù)端,關(guān)閉與服務(wù)器的連接
quit
切換選擇數(shù)據(jù)庫(kù)
SELECT index
默認(rèn)情況下沾谜,我們選擇的是0號(hào)數(shù)據(jù)庫(kù)膊毁,通過(guò)數(shù)據(jù)庫(kù)索引號(hào) index 數(shù)值指定要切換的數(shù)據(jù)庫(kù)
2.String
Sds (Simple Dynamic String,簡(jiǎn)單動(dòng)態(tài)字符串)是Redis 底層所使用的字符串表示基跑,它被用在幾乎所有的Redis 模塊中婚温。
將字符串值 value 關(guān)聯(lián)到 key
SET key value [EX seconds] [PX milliseconds] [NX|XX]
如果 key 已經(jīng)持有其他值, SET 就覆寫(xiě)舊值涩僻,無(wú)視類(lèi)型缭召。
對(duì)于某個(gè)原本帶有生存時(shí)間(TTL)的鍵來(lái)說(shuō), 當(dāng) SET命令成功在這個(gè)鍵上執(zhí)行時(shí)逆日, 這個(gè)鍵原有的 TTL 將被清除嵌巷。
參數(shù):
EX second :設(shè)置鍵的過(guò)期時(shí)間為 second 秒。 SET key value EX second 效果等同于 SETEX key second value 室抽。
PX millisecond :設(shè)置鍵的過(guò)期時(shí)間為 millisecond 毫秒搪哪。 SET key value PX millisecond 效果等同于 PSETEX key millisecond value 。
NX :只在鍵不存在時(shí)坪圾,才對(duì)鍵進(jìn)行設(shè)置操作晓折。 SET key value NX 效果等同于 SETNX key value 。
XX :只在鍵已經(jīng)存在時(shí)兽泄,才對(duì)鍵進(jìn)行設(shè)置操作漓概。
返回 key 所關(guān)聯(lián)的字符串值
GET key
返回key所關(guān)聯(lián)的字符串值。
如果key 不存在那么返回特殊值nil 病梢。
假如 key儲(chǔ)存的值不是字符串類(lèi)型胃珍,返回一個(gè)錯(cuò)誤梁肿,因?yàn)?GET 只能用于處理字符串值。
3.Hash
Redis hash是一個(gè)String類(lèi)型的field和value的映射表觅彰,適合存儲(chǔ)對(duì)象吩蔑。
Redis一個(gè)hash中可以存放2的32次方減1個(gè)鍵值對(duì)。
hmset hashname name "zhangshichao" description "zhangshichao "
查詢(xún)這個(gè)hash填抬,
hgetall hashname
結(jié)果如圖:獲取某一個(gè)hash的某一個(gè)key的值:
hget hashname name
刪除一個(gè)或多個(gè)hash的表字段:
hdel hashname name
判斷某個(gè)字段是否存在于某個(gè)hash表中
hexists hashname description
存在返回1烛芬,不存在返回0.
4.列表
Redis列表是簡(jiǎn)單的字符串列表,按照插入順序排序飒责。
向list中插入多個(gè)值
一個(gè)列表最多可以包含 232 - 1 個(gè)元素赘娄。
lpush listname redis mongodb sqlServer
獲取list的長(zhǎng)度
llen listname
在列表中添加一個(gè)或多個(gè)值
rpush listname hbase
獲取列表中指定范圍的元素(從0開(kāi)始計(jì)算)
lrange listname 0 2
根據(jù)索引獲得列表中的元素
lindex listname 1
移除并獲取列表中的第一個(gè)元素
lpop listname
移除列表中的元素
lrem listname 1 mongodb
4.set
Redis的Set是String類(lèi)型的無(wú)序集合,集合成員必須唯一读拆,它是通過(guò)hash表實(shí)現(xiàn)的擅憔,所以添加,刪除檐晕,查找的復(fù)雜度都是 O(1)暑诸。集合中最大的成員數(shù)為 232 - 1。
存儲(chǔ)
sadd setname redis mongodb
查詢(xún)
smembers setname
刪除集合中的一個(gè)或多個(gè)成員
srem setname mongodb