Redis的安裝簡(jiǎn)介及基本的使用

一、Redis的簡(jiǎn)介

1、Redis--REmote DIctionary Server(遠(yuǎn)程字典服務(wù)器)

2、Redis是一個(gè)使用ANSI ?C語(yǔ)言編寫的開源數(shù)據(jù)庫(kù)

3、高性能的key-value數(shù)據(jù)庫(kù)

4、內(nèi)存數(shù)據(jù)庫(kù),支持?jǐn)?shù)據(jù)持久化(將內(nèi)存數(shù)據(jù)導(dǎo)出到硬盤上)

5、Redis 提供了java, C/C++, C#, PHP, JavaScript, Perl, Object-C, Python, Ruby, Erlang等客戶端

6、從2010年3月15日起,Redis的開發(fā)工作由VMware主持

7、從2013年5月開始,Redis的開發(fā)由Pivotal贊助


二、Redis網(wǎng)址

1、Redis官網(wǎng): ?https://redis.io

2、Redis中國(guó)官網(wǎng): ?http://redis.cn


三、Redis的常用類型

數(shù)據(jù)類型(type)-->string, hash, list, set, sorted set

編碼方式(encoding)-->raw, int, ht, zipmap, linkedlist, ziplist, intset

數(shù)據(jù)指針(ptr)

虛擬內(nèi)存(vm)

其他信息


四、Redis開發(fā)語(yǔ)言的客戶端介紹(網(wǎng)址)

1、Redis官網(wǎng):https://reids.io/clients

2、Redis中國(guó)官網(wǎng):http://redis.cn/clients.html


五、Redis版本下載

1、Linux:

????Redis2.8.0.tar.gz

????http://download.redis.io/releases/

2、Windows:

????Redis-x64-2.8.2402

????由Microsoft Open Tech Group維護(hù)

????https://github.com/MicrosoftArchive/redis


六、Redis安裝

Windows下載完成后解壓就可以使用


七、Redis單實(shí)例配置

1、Redis.conf配置文件

2、Port端口

3、Requirepass密碼

4、Masterauth主從同步中在slave配置master的密碼


八、Redis單實(shí)例服務(wù)端,客戶端啟動(dòng)及關(guān)閉

1、啟動(dòng)redis服務(wù)端

????Redis-server

????Redis-server ${redis.conf}:添加配置文件

????Redis-server --port ${port} :添加端口號(hào)

2、啟動(dòng)redis客戶端

????Redis-cli

????Redis-cli -p ${port}:服務(wù)端添加端口號(hào)客戶端也需要添加

????Redis-cli -h ${ip}:添加ip

????Redis-cli -a ${password}:配置文件加入密碼,客戶端需要添加密碼

????Redis-cli -p ${port} -h ${ip} -a ${password} :加入端口號(hào),ip和密碼

3、關(guān)閉客戶端

????Redis-cli shutdown(默認(rèn)關(guān)閉6379端口)

????Redis-cli -p ${port} shutdown:加入端口號(hào)

????Redis-cli -h ${ip} shutdown:加入ip

????Redis-cli -p ${port} -h ${ip} shutdown:加入端口號(hào)和ip


九、Redis單實(shí)例環(huán)境驗(yàn)證

1、執(zhí)行ping命令

2、執(zhí)行redis set 和 get 命令檢測(cè)一下


十、Redis的基本操作

1、打開服務(wù)端redis-server.exe

2、打開客戶端redis-cli.exe

3、關(guān)閉客戶端,并將文件保存到磁盤中:redis-cli shutdown

4、-p(端口,默認(rèn)的端口是6379) ?-h(ip,默認(rèn)的IP是127.0.0.1) ?-a(密碼,默認(rèn)沒有密碼)

5、測(cè)試服務(wù)是否成功: ?ping 返回 PONG

6、終止命令 Ctrl + c

7、添加密碼: ?requirepass 密碼

8、主從: ?masterauth 密碼

9、命名空間默認(rèn)為0, 共有16個(gè),如果想要切換空間可以:select value(例 select 1)


十一、Redis系統(tǒng)級(jí)基礎(chǔ)命令

1、查看版本信息:info

????Keyspace(相當(dāng)于數(shù)據(jù)庫(kù),默認(rèn)含有16個(gè)數(shù)據(jù)庫(kù))

2、清除當(dāng)前空間:flushdb

3、清除所有空間:flushall

4、查看key的數(shù)量:dbsize

5、人工保存到磁盤:save

6、退出鏈接:quit


十二、Redis的鍵命令

1.?刪除:del key

2.?判斷是否含有某key值:exists key

3.?剩余過(guò)期時(shí)間:ttl key

????返回: -1 永久?

????????????-2 不存在

????設(shè)置過(guò)期時(shí)間:expire?key time(s:秒)

4.?返回key的類型:type?key

5.?隨機(jī)返回key值:randomkey

6.?重命名key: ?rename??oldkey ?newkey

????覆蓋已經(jīng)存在的key值

????不去校驗(yàn)是否已經(jīng)存在key

7.?重命名key: ?renamenx??oldkey ?newkey

????校驗(yàn)已經(jīng)存在的key,如果存在返回0,不存在繼續(xù)重命名的操作


十三、五種數(shù)據(jù)結(jié)構(gòu)

1、String字符串(nx結(jié)尾的命令會(huì)進(jìn)行一些判斷)

1.?設(shè)置: set?key value

2.?設(shè)置:setnx?key value

????驗(yàn)證是否含有想要設(shè)置的key,如果有,則不能成功設(shè)置,返回0如果沒有,則設(shè)置成功,返回1

3.?設(shè)置有效期的String(秒): ?setex?key time(s) value

4.?設(shè)置有效期的string(毫秒): ?psetex?key time(ms) value

5.?獲取:get?key

6.?獲取value的區(qū)間值:getrange?key index index (下標(biāo)從0開始)

7.?先獲取再設(shè)置:getset?key value

????先獲取key的值,再進(jìn)行設(shè)置,并且返回oldvalue(舊值)

8.?同時(shí)設(shè)置多個(gè)值:mset?key1 value1 key2 value2

9.?同時(shí)設(shè)置多個(gè)值:msetnx?key1 value1 key2 value2

????驗(yàn)證是否含有想要設(shè)置的key,如果有,則不能成功設(shè)置,返回0如果沒有,則設(shè)置成功,返回1

????Msetnx具有事務(wù)的原子性

10.?同時(shí)獲取多個(gè)值:mget?key1 key2

11.?獲取key值得長(zhǎng)度:strlen?key

12.?追加字符串:append?key addValue

????在key原來(lái)value的基礎(chǔ)上,在末尾加上addValue

13.?操作數(shù)值加一:incr?key(數(shù)值類型)

????increase

14.?操作數(shù)值加想要的步長(zhǎng):incrby?key count(想要每次增加的數(shù)量)

15.?操作數(shù)值減一:decr?key(數(shù)值類型)

????decrease

16.?操作數(shù)值減想要的步長(zhǎng):decrby?key count(每次想要減少的數(shù)量)


2、哈希hash

1.?設(shè)置:hset?key1 key2 value(例:hset map name laowang)

2.?設(shè)置(檢查):hsetnx key1 key2 value

????檢查將要設(shè)置的key2和value是否存在于key1中,存在不成功,不存在設(shè)置成功

3.?檢查key是否存在:hexists?key1 key2

????成功返回1; 失敗返回0

4.?獲取:hget?key1 key2

????成功返回value, 失敗返回nil

5.?獲取全部數(shù)據(jù)(包括key2 和value):hgetall key1

6.?獲取key2值:hkeys?key1

7.?獲取value值:hvals?key1

8.?獲取數(shù)量(獲取的是key2的數(shù)量):hlen?key1

9.?設(shè)置多個(gè)數(shù)據(jù):hmset?key1 key2 value2 key3 value3

10.?獲取多個(gè)數(shù)據(jù):hmget?key1 key2 key3

11.?刪除多個(gè)數(shù)據(jù):hdel?key1 key2 key3


3、列表list

1.?添加:lpush?key value1 value2 value3

????第一個(gè)進(jìn)的值(value1)在索引位置最后; 最后一個(gè)進(jìn)的值(value3)在索引位置0;

????Value值可以重復(fù),有序

2.?獲取長(zhǎng)度:llen?key

3.?獲取key中的區(qū)間值:lrange?key index1 index2

4.?設(shè)置指定索引位置的值:lset?key index value

5.?獲取指定索引位置的值:lindex?key index

6.?刪除索引位置為0的元素:lpop?key

7. 刪除索引位置最后的元素:rpop?key


4、集合set

添加,刪除,查找的時(shí)間復(fù)雜度為 o1

1.?添加:sadd?key value1 value2 value3

????無(wú)序,不能重復(fù)

2.?返回集合的數(shù)量:scard?key

3.?查看集合中的成員:smembers?key

4.?差集:sdiff?key1 key2

????哪一個(gè)key在前面,就返回哪一個(gè)key的不相同的值

5.?交集:sinter?key1 key2

????返回相同的值

6.?并集:sunion?key1 key2

????返回所有的值,如果有重復(fù)的值只返回一個(gè)

7.?隨機(jī)返回指定數(shù)量的數(shù)據(jù):srandmember?key count

8.?驗(yàn)證是否是指定集合的成員元素:sismember?key value

9.?移除集合中一個(gè)或多個(gè)元素:srem key value1 value2

10.?移除一個(gè)隨機(jī)元素并且返回移除的元素:spop key


5、有序集合sortedset

1.?添加:zadd?key value1 key1 value2 key2 (例: zadd sortedset 100 a 200 b)

????Value需要是數(shù)值

????根據(jù)value值從小到大排序

? ? key不能重復(fù)

2.?獲取存儲(chǔ)的數(shù)量:zcard key

3.?獲取key中某個(gè)key1或者key2··的value值:zscore key key1

4.?獲取指定分?jǐn)?shù)區(qū)間的數(shù)量:zcount key value1 value2(例: zcount key 0 300)

5.?返回指定key的索引位置: zrank key key1

6.?給指定的key增加指定的數(shù)值: zincrby key value1 key1

7.?返回指定索引位置區(qū)間的key值: zrange key index1 index2

8.?返回指定索引位置區(qū)間的key值和value值:zrange key index1 index2 withscores

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容