Redis是一個(gè)開源的使用ANSI C語言編寫党晋、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型徐块、Key-Value數(shù)據(jù)庫未玻,并提供多種語言的API。從2010年3月15日起胡控,Redis的開發(fā)工作由VMware主持扳剿。從2013年5月開始,Redis的開發(fā)由Pivotal贊助昼激。Redis是一個(gè)開源的使用ANSI C語言編寫庇绽、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型橙困、Key-Value數(shù)據(jù)庫瞧掺,并提供多種語言的API。從2010年3月15日起纷宇,Redis的開發(fā)工作由VMware主持夸盟。從2013年5月開始,Redis的開發(fā)由Pivotal贊助像捶。
一上陕、安裝Redis
- Redis配置文件:/etc/redis.conf
- Redis主程序:/usr/bin/redis-server
- 客戶端工具:/usr/bin/redis-cli
- 默認(rèn)監(jiān)聽端口:6379
- 數(shù)據(jù)目錄:/var/lib/redis
- 服務(wù)腳本:/usr/lib/systemd/system/redis.service
yum install redis # 基于CentOS7的epel源
二桩砰、連接Redis
Redis的客戶端命令工具為redis-cli
,默認(rèn)連接本地的Redis服務(wù)释簿。
如果需要遠(yuǎn)程連接則使用redis-cli -h HOST -p PORT -a PASSWD
[root@cache1 ~]# redis-cli
127.0.0.1:6379> ping # 使用ping命令測試與服務(wù)的連接性
PONG # 服務(wù)端回復(fù)pong則說明網(wǎng)絡(luò)連接沒有問題
三亚隅、Redis數(shù)據(jù)類型
-
String(字符串)
string是redis最基本的類型,你可以理解成與Memcached一模一樣的類型庶溶,一個(gè)key對應(yīng)一個(gè)value煮纵。
string類型是二進(jìn)制安全的。意思是redis的string可以包含任何數(shù)據(jù)偏螺。比如jpg圖片或者序列化的對象 行疏。
string類型是Redis最基本的數(shù)據(jù)類型,一個(gè)鍵最大能存儲512MB套像。
-
Hash(哈希)
Redis hash 是一個(gè)鍵值(key=>value)對集合酿联。
Redis hash是一個(gè)string類型的field和value的映射表,hash特別適合用于存儲對象夺巩。
-
List(列表)
Redis 列表是簡單的字符串列表贞让,按照插入順序排序。你可以添加一個(gè)元素到列表的頭部(左邊)或者尾部(右邊)柳譬。
-
Set(集合)
Redis的Set是string類型的無序集合喳张。
集合是通過哈希表實(shí)現(xiàn)的,所以添加美澳,刪除销部,查找的復(fù)雜度都是O(1)。
-
zset(sorted set:有序集合)
Redis zset 和 set 一樣也是string類型元素的集合,且不允許重復(fù)的成員人柿。
不同的是每個(gè)元素都會關(guān)聯(lián)一個(gè)double類型的分?jǐn)?shù)柴墩。redis正是通過分?jǐn)?shù)來為集合中的成員進(jìn)行從小到大的排序。
zset的成員是唯一的,但分?jǐn)?shù)(score)卻可以重復(fù)凫岖。
四江咳、獲取幫助
help @ + 雙擊tab # 雙擊tab會出現(xiàn)各種子命令的幫助
help @string # 字符串相關(guān)的配置
help @list # 列表相關(guān)的配置;列表類似于數(shù)組
help @set
help @hash
......
五哥放、List相關(guān)的命令
其他幾個(gè)數(shù)據(jù)類型比較簡單歼指,通過幫助就能獲得命令的使用方法。最簡單的辦法就是百度甥雕。由于List相關(guān)的命令僅僅看幫助的話很難理解一些操作踩身,所以拿出來單獨(dú)講講最常用的幾個(gè)命令
示例:
127.0.0.1:6379> LPUSH stu aubin # LPUSH,向列表左側(cè)添加元素社露,列表不存在自動創(chuàng)建
(integer) 1
127.0.0.1:6379> RPUSH stu 22 # RPUSH挟阻,向列表右側(cè)添加元素,列表不存在則自動創(chuàng)建
(integer) 2
127.0.0.1:6379> RPUSHX stu nan # RPUSHX,如果列表存在則右側(cè)添加元素
(integer) 3
127.0.0.1:6379> LPUSHX stu linux # LPUSHX附鸽,如果列表存在則左側(cè)添加元素
(integer) 4
127.0.0.1:6379> LRANGE stu 0 10 # LRANGE脱拼,顯示名為stu的列表的0-10個(gè)值
1) "aubin"
2) "22"
3) "nan"
4) "linux"
LPOP stu # 左彈,刪除名為stu列表中的第一個(gè)元素
RPOP stu # 右彈坷备,刪除名為stu列表中的最后一個(gè)元素
LREM stu 3 aubin # 從頭到尾刪除3個(gè)值為aubin的元素
LREM stu -3 aubin # 從尾到頭刪除3個(gè)值為aubin的元素
LREM stu 0 aubin # 刪除所有值為aubin的元素