Redis基礎知識彙總

Redis基礎知識彙總

1.什麼是Redis

Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value的非關係型數據庫,並提供多種語言的API。git

  • Redis是遠程的
  • Redis是基於內存的
  • Redis是非關係型數據庫

2.Redis的安裝

2.1.Window安裝Redis
  1. 選擇須要版本下載安裝包github

  2. 解壓Redis安裝包,當前目錄打開cmd窗口,redis-server.exe redis.windows.conf 啓動Redisredis

    redis-server.exe redis.windows.conf
  3. 若是須要Redis一直存在,執行 redis-server.exe --service-install redis.windows-service.conf 添加到服務列表shell

    redis-server.exe --service-install redis.windows-service.conf
  4. 使用 redis-cli.exe -h localhost -p 6379 或者運行 redis-cli.exe 打開客戶端
2.2.Linux安裝Redis
  1. 選擇須要版本獲取源碼,wget http://download.redis.io/rele...
  2. 解壓文件包 tar xzf redis-5.0.2.tar.gz
  3. 進入解壓文件夾編譯源碼 cd redis-5.0.2,make
  4. make install 安裝
  5. redis-cli 打開客戶端數據庫

    wget http://download.redis.io/releases/redis-5.0.2.tar.gz
    tar xzf redis-5.0.2.tar.gz
    cd redis-5.0.2
    make
    make install

在 Window 下,配置文件爲 redis.windows.conf,在 Linux 下,配置文件是redis.conf,一下經常使用配置windows

  • daemonize:配置Redis是否以守護進程的方式運行,默認no,使用yes啓用守護進程
  • port:Reids佔用端口號,默認6379
  • bind:綁定ip,Redis接受該ip的請求,默認127.0.0.1即本機,修改成0.0.0.0可接受全部
  • timeout :客戶端鏈接超時時間
  • databases:數據庫數量,默認16

3.Redis數據類型

Redis支持五種數據類型:String(字符串),Hash(哈希),List(列表),Set(集合)及zset(Sorted Set:有序集合)。網絡

  • String:一個 key 對應一個 value,能夠是字符串、整數或浮點,統稱爲元素 ,支持對字符串字符處理操做,對整數類型加減
  • Hash:key-valued的散列組,其中key是字符串,value是元素 ,支持按照key進行增長刪除
  • List:一個有序(插入順序)序列集合 ,支持序列兩端推入、或彈出元素、增剪、查改或移除元素
  • Set:無序的集合,各不相同的元素 ,可從集合中插入或刪除元素
  • Sorted Set:帶分數的score-value有序集合,其中score爲浮點,value爲元素,以score排序,支持集合插入,按照分數範圍查找

4.Redis的經常使用操做命令

4.1.String類型操做命令
  • set key value:添加key-value的數據,存在則更新
  • get key:根據key獲取value
  • incr key:對於數字型value,將key存儲的值加 1,即value = value + 1
  • decr key:對於數字型value,將key存儲的值減 1,即value = value - 1
  • incrby key num:對於數字型value,將key所存儲的值增長num,即value = value + num
  • decrby key num:對於數字型value,將key所存儲的值減去num,即value = value - num
  • append key str:將str字符串拼接到key所對應的val末尾,數字會轉化爲字符串,即value =value + str
  • setnx key value:只有在key不存在的時候才添加,key存在則不作任何操做
  • mget key [key2...]:一次獲取多個key的值
  • msetkey value [key2 value2...]:一次添加多組key-value
  • getset:添加key-value,並返回key以前所對應的值,不存在返回nil
  • setex key seconds value:添加key-value,並設置超時時間爲second秒
  • strlen key:返回key所對應value的長度
  • del key:刪除存儲的key-value數據
4.2.Hash類型操做命令
  • hset key field value: 存儲key-hash[field-value],存在則更新
  • hmset key field value [field2 value2...]:存儲多組key-hash
  • hsetnx key field value:僅當field不存在是,在哈希表key下添加field-value,不然不作任何操做
  • hget key field:獲取哈希表key中字段field的值
  • hget key field [field2...]:獲取哈希表key中多個字段field,field...的值
  • hgetall key:獲取哈希表key中全部字段field及其值value的集合
  • hvals key:獲取哈希表key中全部值value的集合
  • hlen key:獲取哈希表key中存儲字段的數量
  • hkeys key:獲取哈希表key中全部字段field的集合
  • hdel key field [field2...]:刪除哈希表key中字段field,field1...
  • hexitst key field:查看哈希表key中field字段是否存在,存在返回1,不存在返回0
4.3.List類型操做命令
  • lpush key value [value2....]:將一個或多個值插入到列表key的頭部 (左邊)
  • rpush key value [value2....]:將一個或多個值插入到列表key的尾部 (右邊)
  • lpop key:獲取而且移出列表key的第一個元素(左邊)
  • rpop key:獲取並移出列表key的最後一個元素(右邊)
  • lrange key start stop:獲取列表key指定範圍內的元素
  • llen key:獲取鍵爲key的列表長度
  • lindex key index:獲取列表key中指定索引的值
  • lrem key count value:刪除列表key中count數量的value值app

    • count > 0:從表頭(左邊)開始向表尾搜索,移除與 value相等的元素,數量爲 count
    • count < 0:從表尾(右邊)開始向表頭搜索,移除與 value相等的元素,數量爲 count
    • count = 0:移除表key中全部與 value相等的值
  • lset key index value:將列表ky中索引index位置的值設置爲value
4.4.Set類型操做命令
  • sdd key member [member2...]:向集合key添加一個或多個成員,不重複添加
  • scard key:獲取集合key的成員數量
  • sinter key [key2...]:返回給定集合key,key2...的交集
  • sismember key member:判斷member是否在集合key中存在,存在返回1,不存在返回0
  • smembers key:返回集合key中的全部成員
  • srandmember key [count]:隨即返回集合key中一個或count個成員
  • srem key member [member2...]:刪除集合key中member,member2...
4.5.zset類型操做命令
  • zadd key score member [score2 member2....]:向集合key中添加一個或者多個分數爲score的成員,存在則更新分數
  • zcard key:獲取有序集合key中成員的數量
  • zcount key min max:獲取有序集合key中分數在[min,max]區間內成員的數量
  • zincrby key increment member:將有序集合key中成員member的分數增長increment,即score = score + increment
  • zrange key start stop [withscores]:獲取有序集合key索引區間[start, stop]的成員,索引0開始,stop爲-1則一直獲取到集合最後一個成員,withscores參數表示帶上分數
  • zrank key member:返回有序集合key中指定成員member的索引
  • zrem key member [member2....]:移除有序集合key中的一個或多個成員
  • zrevrange key start stop [withscores]:反序返回有序集key中索引區間[start, stop](反序後的索引)的成員,索引0開始,stop爲-1則一直獲取到集合最後一個成員,withscores參數表示帶上分數
  • zscore key member:獲取有序集合key中成員member的分數
相關文章
相關標籤/搜索