
Redis的安裝與基本數(shù)據(jù)操作(Ubuntu系統(tǒng))
1.Redis 安裝
當(dāng)前redis最新穩(wěn)定版本是5.0.7
最新穩(wěn)定版本下載鏈接:http://download.redis.io/releases/redis-5.0.7.tar.gz
-
step1:下載
Image -
step2:解壓
tar xzvf redis-5.0.7.tar.gz
-
step3:移動,放到usr/local?錄下
sudo mv ./redis-5.0.7 /usr/local/redis/
-
step4:進?redis?錄
cd /usr/local/redis/
-
step5:生成
make
Image -
step6:測試,這段運?時間會較?
sudo make test
Image -
step7:安裝,將redis的命令安裝到/usr/local/bin/?錄
sudo make install
Image -
step8:安裝完成后,我們進入目錄/usr/local/bin中查看
cd /usr/local/bin
ls -allImage- redis-server redis服務(wù)器
- redis-cli redis命令行客戶端
- redis-benchmark redis性能測試工具
- redis-check-aof AOF文件修復(fù)工具
- redis-check-rdb RDB文件檢索工具
-
step9:配置?件,移動到/etc/?錄下
配置?件?錄為/usr/local/redis/redis.conf
sudo mkdir /etc/redis
sudo cp /usr/local/redis/redis.conf /etc/redis/到此為止redis數(shù)據(jù)庫安裝完成,安裝完成后,redis服務(wù)器默認(rèn)運行
配置
Redis的配置信息在/etc/redis/redis.conf下
-
查看。
sudo vi /etc/redis/redis.conf
核心配置選項
-
綁定ip:如果需要遠(yuǎn)程訪問,可將此?注釋,或綁定?個真實ip
bind 127.0.0.1
-
端?,默認(rèn)為6379
port 6379
-
是否以守護進程運?
- 如果以守護進程運?,則不會在命令?阻塞,類似于服務(wù)
- 如果以?守護進程運?,則當(dāng)前終端被阻塞
- 設(shè)置為yes表示守護進程,設(shè)置為no表示?守護進程
- 推薦設(shè)置為yes
daemonize yes
-
數(shù)據(jù)?件
dbfilename dump.rdb
-
數(shù)據(jù)?件存儲路徑
dir /var/lib/redis
-
?志?件
logfile "/var/log/redis/redis-server.log"
-
數(shù)據(jù)庫,默認(rèn)有16個
database 16
-
主從復(fù)制,類似于雙機備份。
slaveof
2.redis客戶端的數(shù)據(jù)操作
客戶端的命令為redis-cli
-
可以使?help查看幫助?檔
redis-cli --help
-
連接redis
redis-cli
Image -
運?測試命令
ping
Image -
切換數(shù)據(jù)庫
數(shù)據(jù)庫沒有名稱,默認(rèn)有16個,通過0-15來標(biāo)識,連接redis默認(rèn)選擇第一個數(shù)據(jù)庫
select 10
Image
-
數(shù)據(jù)結(jié)構(gòu)
redis是key-value的數(shù)據(jù)結(jié)構(gòu),每條數(shù)據(jù)都是?個鍵值對
鍵的類型是字符串
注意:鍵不能重復(fù)
-
值的類型分為五種:
- 字符串string
- 哈希hash
- 列表list
- 集合set
- 有序集合zset
-
數(shù)據(jù)操作行為
- 保存
- 修改
- 獲取
- 刪除
string類型
- 字符串類型是 Redis 中最為基礎(chǔ)的數(shù)據(jù)存儲類型,它在 Redis 中是二進制安全的,這便意味著該類型可以接受任何格式的數(shù)據(jù),如JPEG圖像數(shù)據(jù)或Json對象描述信息等。在Redis中字符串類型的Value最多可以容納的數(shù)據(jù)長度是512M。
保存修改
如果設(shè)置的鍵不存在則為添加,如果設(shè)置的鍵已經(jīng)存在則修改
-
設(shè)置鍵值
set key value
例1:設(shè)置鍵為name值為redis的數(shù)據(jù)
set name redis
Image
-
設(shè)置鍵值及過期時間,以秒為單位
setex key seconds value
例2:設(shè)置鍵為a值為aa過期時間為5秒的數(shù)據(jù)
setex a 5 aa
Image -
設(shè)置多個鍵值
mset key1 value1 key2 value2 ...
例3:設(shè)置鍵為'a1'值為'python'、鍵為'a2'值為'java'、鍵為'a3'值為'c'
mset a1 python a2 java a3 c
Image -
追加值
append key value
例4:向鍵為a1中追加值' hello'
append a1 ' hello'
Image
獲取
-
獲?。焊鶕?jù)鍵獲取值,如果不存在此鍵則返回nil
get key
例5:獲取鍵'name'的值
get name
get hello
Image -
根據(jù)多個鍵獲取多個值
mget key1 key2 ...
例6:獲取鍵a1、a2、a3'的值
mget a1 a2 a3
Image
刪除
- 詳?鍵的操作,刪除鍵時會將值刪除
鍵命令
-
查找鍵,參數(shù)?持正則表達式
keys pattern
例1:查看所有鍵
keys *
Image例2:查看名稱中包含a的鍵
keys 'a*'
Image -
判斷鍵是否存在,如果存在返回1,不存在返回0
exists key1
例3:判斷鍵a1是否存在
exists a1
exists a2
exists ccImage
-
查看鍵對應(yīng)的value的類型
type key
例4:查看鍵a1的值類型,為redis?持的五種類型中的?種
type a1
Image
-
刪除鍵及對應(yīng)的值
del a2 a3
Image
-
設(shè)置過期時間,以秒為單位
如果沒有指定過期時間則?直存在,直到使?DEL移除
expire key seconds
例6:設(shè)置鍵'a1'的過期時間為5秒
expire a1 5
Image
-
查看有效時間,以秒為單位
ttl key
例7:查看鍵'bb'的有效時間
ttl bb
Image
hash類型
- hash?于存儲對象,對象的結(jié)構(gòu)為屬性、值
- 值的類型為string
增加、修改
-
設(shè)置單個屬性
hset key field value
例1:設(shè)置鍵 user的屬性name為python
hset user name python
Image -
設(shè)置多個屬性
hmset key field1 value1 field2 value2 ...
例2:設(shè)置鍵user2的屬性name為php、屬性age為11
hmset user2 name php age 11
Image
獲取
-
獲取指定鍵所有的屬性
hkeys key
例3:獲取鍵user2的所有屬性
hkeys user2
Image -
獲取?個屬性的值
hget key field
例4:獲取鍵user2屬性'name'的值
hget user2 name
Image
-
獲取多個屬性的值
hmget key field1 field2 ...
例5:獲取鍵user2屬性'name'、'age'的值
hmget user2 name age
Image
-
獲取所有屬性的值
hvals key
例6:獲取鍵'user2'所有屬性的值
hvals user2
Image
刪除
刪除整個hash鍵及值,使?del命令
-
刪除屬性,屬性對應(yīng)的值會被?起刪除
hdel key field1 field2 ...
例7:刪除鍵'user2'的屬性'age'
hdel user2 age
Image
list類型
- 列表的元素類型為string
- 按照插?順序排序
增加
-
在左側(cè)插?數(shù)據(jù)
lpush key value1 value2 ...
例1:從鍵為'a1'的列表左側(cè)加?數(shù)據(jù)a 、 b 、c
lpush a1 a b c
Image -
在右側(cè)插?數(shù)據(jù)
rpush key value1 value2 ...
例2:從鍵為'a1'的列表右側(cè)加?數(shù)據(jù)0 1
rpush a1 0 1
Image -
在指定元素的前或后插?新元素
linsert key before或after 現(xiàn)有元素 新元素
例3:在鍵為'a1'的列表中元素'b'前加?'3'
linsert a1 before b 3
Image
獲取
-
返回列表?指定范圍內(nèi)的元素
- start、stop為元素的下標(biāo)索引
- 索引從左側(cè)開始,第?個元素為0
- 索引可以是負(fù)數(shù),表示從尾部開始計數(shù),如-1表示最后?個元素
lrange key start stop
例4:獲取鍵為'a1'的列表所有元素
lrange a1 0 -1
Image
-
返回列表?指定key的長度。
llen key
獲取列表'a1'的長度
llen a1
Image
-
設(shè)置指定索引位置的元素值
lset key index value
例5:修改鍵為'a1'的列表中下標(biāo)為1的元素值為'z'
lset a1 1 z
Image
刪除
-
刪除指定元素
- 將列表中前count次出現(xiàn)的值為value的元素移除
- count > 0: 從頭往尾移除
- count < 0: 從尾往頭移除
- count = 0: 移除所有
lrem key count value
例6.1:向列表'a2'中加?元素'a'、'b'、'a'、'b'、'a'、'b'
lpush a2 a b a b a b
例6.2:從'a2'列表右側(cè)開始刪除2個'b'
lrem a2 -2 b
例6.3:查看列表'a2'的所有元素
lrange a2 0 -1
Image
set類型
- ?序集合
- 元素為string類型
- 元素具有唯?性,不重復(fù)
- 說明:對于集合沒有修改操作
增加
-
添加元素
sadd key member1 member2 ...
例1:向鍵'a3'的集合中添加元素'zhangsan'、'lisi'、'wangwu'
sadd a3 zhangsan lisi wangwu
Image
獲取
-
返回所有的元素
smembers key
例2:獲取鍵'a3'的集合中所有元素
smembers a3
Image
刪除
-
刪除指定元素
srem key
例3:刪除鍵'a3'的集合中元素'wangwu'
srem a3 wangwu
Image
zset類型
- sorted set,有序集合
- 元素為string類型
- 元素具有唯?性,不重復(fù)
- 每個元素都會關(guān)聯(lián)?個double類型的score,表示權(quán)重,通過權(quán)重將元素從?到?排序
- 說明:沒有修改操作
增加
-
添加元素
zadd key score1 member1 score2 member2 ...
例1:向鍵'a4'的集合中添加元素'lisi'、'wangwu'、'zhaoliu'、'zhangsan',權(quán)重分別為4、5、6、3
zadd a4 4 lisi 5 wangwu 6 zhaoliu 3 zhangsan
Image
獲取
返回指定范圍內(nèi)的元素
start、stop為元素的下標(biāo)索引
索引從左側(cè)開始,第?個元素為0
-
索引可以是負(fù)數(shù),表示從尾部開始計數(shù),如-1表示最后?個元素
zrange key start stop
Image -
返回score值在min和max之間的成員
zrangebyscore key min max
例3:獲取鍵'a4'的集合中權(quán)限值在5和6之間的成員
zrangebyscore a4 5 6
Image
-
返回成員member的score值
zscore key member
例4:獲取鍵'a4'的集合中元素'zhangsan'的權(quán)重
zscore a4 zhangsan
Image
刪除
-
刪除指定元素
zrem key member1 member2 ...
例5:刪除集合'a4'中元素'zhangsan'
zrem a4 zhangsan
Image -
刪除權(quán)重在指定范圍的元素
zremrangebyscore key min max
例6:刪除集合'a4'中權(quán)限在5、6之間的元素
zremrangebyscore a4 5 6
Image
這些都是redis數(shù)據(jù)庫的一些基本的命令用法,不會用了就來翻一下吧!
寫了一整天,點贊轉(zhuǎn)發(fā)支持一下吧,親!











































