Redis的安裝與基本數(shù)據(jù)操作(Ubuntu系統(tǒng))

Image

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:下載

    wget http://download.redis.io/releases/redis-5.0.7.tar.gz

    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 -all

    Image
    • 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 cc

    Image
  • 查看鍵對應(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ā)支持一下吧,親!

參考鏈接

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

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

  • NoSQL介紹 一類新出現(xiàn)的數(shù)據(jù)庫(not only sql),它的特點: 不支持SQL語法 存儲結(jié)構(gòu)跟傳統(tǒng)關(guān)系型...
    瘦不下去了閱讀 319評論 0 0
  • 1.使用LinkedList LinkedList在類中的層次關(guān)系【圖】 為什么需要LinkedList?Arra...
    hhp895閱讀 436評論 0 1
  • redis是一個以key-value存儲的非關(guān)系型數(shù)據(jù)庫。有五種數(shù)據(jù)類型,string、hashes、list、s...
    林ze宏閱讀 1,118評論 0 0
  • 常見前端面試題---vue篇 2、vue生命周期 vue生命周期就是vue實例從創(chuàng)建到銷毀的過程。也就是從開始創(chuàng)建...
    暮長亭晚閱讀 140評論 0 0
  • MySQL常見錯誤類型: 2003 這個是常見的,mysql服務(wù)沒開,或者是防火墻相關(guān)端口沒開放和selinux沒...
    博客用戶閱讀 176評論 0 0

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