Redis數據庫--快速入門手冊

注:本篇博客的所有測試環境均爲Ubuntu16.04之下,本篇博客總結自Redis教程

數據庫的安裝與配置

Ubuntu下安裝

  • $sudo apt-get update
  • $sudo apt-get install redis-server

服務端啓動命令

redis-server


客戶端啓動命令

redis-cli

啓動成功之後會出現:

redis 127.0.0.1:6379>

在終端上輸入ping命令,如果出現pong則說明安裝成功。


設置redis數據庫可遠程登錄並設置登錄密碼

使用root權限修改/etc/redis/redis.conf文件:
這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

想使用哪個密碼進行登錄就直接修改“password”這個字符串就行,如圖我現在的密碼是password。

設置允許遠程登錄:
這裏寫圖片描述

將bind 127.0.0.1那一行進行註釋。

修改完之後將redis服務進行重啓:

sudo /etc/init.d/redis-server restart

修改完成之後我們的登錄方式變爲:

redis-cli -h 127.0.0.1 -p 6379(默認端口) -a password


redis的常用命令彙總

我將從redis數據庫能夠存儲的數據結構的類型進行一個個的彙總(只是博主認爲較常用的,詳細的大家可以查閱官方文檔或百度)

獲取數據庫所有鍵

使用 KEYS 命令:KEYS pattern,例如:redis> keys * 列出所有 key。

redis 127.0.0.1:6379> SET name redis
OK
redis 127.0.0.1:6379> DEL name
(integer) 1

DEL 是一個命令,name 是一個鍵。 如果鍵被刪除成功,命令執行後輸出 (integer) 1,否則將輸出 (integer) 0。

  • EXISTS key
    檢查給定 key 是否存在。
  • KEYS pattern
    查找所有符合給定模式( pattern)的 key 。
  • RENAME key newkey
    修改 key 的名稱
  • TYPE key
    返回 key 所儲存的值的類型。

字符串

redis 127.0.0.1:6379> SET name redis
OK
redis 127.0.0.1:6379> GET name
“redis”

我們使用了 SET 和 GET 命令,鍵爲name。

  • MGET key1 [key2…]
    獲取所有(一個或多個)給定 key 的值。
  • STRLEN key
    返回 key 所儲存的字符串值的長度。
  • MSET key value [key value …]
    同時設置一個或多個 key-value 對。
  • INCR key
    將 key 中儲存的數字值增一。
  • INCRBY key increment
    將 key 所儲存的值加上給定的增量值(increment) 。
  • DECR key
    將 key 中儲存的數字值減一。
  • DECRBY key decrement
    key 所儲存的值減去給定的減量值(decrement) 。
  • APPEND key value
    如果 key 已經存在並且是一個字符串, APPEND 命令將 value 追加到 key 原來的值的末尾。

哈希(Hash)

Redis hash 是一個string類型的field和value的映射表。Redis 中每個 hash 可以存儲40多億鍵值對。

127.0.0.1:6379> HMSET redis name “redis tutorial” description “redis basic commands for caching” likes 20 visitors 23000
OK
127.0.0.1:6379> HGETALL redis

  1. “name”
  2. “redis tutorial”
  3. “description”
  4. “redis basic commands for caching”
  5. “likes”
  6. “20”
  7. “visitors”
  8. “23000”

我們設置了 redis 的一些描述信息(name, description, likes, visitors) 到哈希表的 redis 中。

  • HDEL 表名 key[key2]
    刪除一個或多個哈希表字段。
  • HEXISTS 表名 key
    查看哈希表中指定的字段是否存在。
  • HGETALL 表名
    獲取指定哈希表所有字段和值。
  • HINCRBY 表名 key increment
    爲哈希表的指定字段的整數值加上增量 increment 。
  • HKEYS 表名
    獲取哈希表中的所有字段。
  • HMGET 表名 key [key2]
    獲取所有給定字段的值。
  • HMSET 表名 key1 value1 [key2 value2 ]
    同時將多個 key-value (鍵-值)對設置到哈希表中。
  • HSET 表名 key value
    將哈希表中的字段 key 的值設爲 value 。
  • HVALS 表名
    獲取哈希表中所有值。

列表(List)

Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部或者尾部,一個列表最多可以包含40億多個元素。

redis 127.0.0.1:6379> LPUSH redis redis
(integer) 1
redis 127.0.0.1:6379> LPUSH redis mongodb
(integer) 2
redis 127.0.0.1:6379> LPUSH redis mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE redis 0 10

  1. “mysql”
  2. “mongodb”
  3. “redis”

在以上實例中我們使用了 LPUSH 將三個值插入了名爲 redis 的列表當中。

  • BLPOP key1 [key2 ] timeout
    移出並獲取列表的第一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。
  • BRPOP key1 [key2 ] timeout
    移出並獲取列表的最後一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。
  • LINDEX key index
    通過索引獲取列表中的元素。
  • LLEN key
    獲取列表長度。
  • LPOP key
    移出並獲取列表的第一個元素。
  • LPUSH key value1 [value2]
    將一個或多個值插入到列表頭部。
  • LRANGE key start stop
    獲取列表指定範圍內的元素(如上面的例子)。
  • LSET key index value
    通過索引設置列表元素的值。
  • LTRIM key start stop
    對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內的元素,不在指定區間之內的元素都將被刪除。
  • RPOP key
    移除並獲取列表最後一個元素。
  • RPUSH key value1 [value2]
    在列表尾部中添加一個或多個值。

集合(Set)

集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是O(1)。Set是String類型的無序集合。集合成員是唯一的。

redis 127.0.0.1:6379> SADD redis redis
(integer) 1
redis 127.0.0.1:6379> SADD redis mongodb
(integer) 1
redis 127.0.0.1:6379> SADD redis mysql
(integer) 1
redis 127.0.0.1:6379> SADD redis mysql
(integer) 0
redis 127.0.0.1:6379> SMEMBERS redis

  1. “mysql”
  2. “mongodb”
  3. “redis”

我們通過 SADD 命令向名爲 redis 的集合插入的三個元素。

  • SADD key member1 [member2]
    向集合添加一個或多個成員
  • SCARD key
    獲取集合的成員數
  • SISMEMBER key member
    判斷 member 元素是否是集合 key 的成員
  • SMEMBERS key
    返回集合中的所有成員
  • SMOVE source destination member
    將 member 元素從 source 集合移動到 destination 集合
  • SREM key member1 [member2]
    移除集合中一個或多個成員
  • SUNIONSTORE destination key1 [key2]
    所有給定集合的並集存儲在 destination 集合中

有序集合(sorted set)

Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重複的成員。
不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來爲集合中的成員進行從小到大的排序。
有序集合的成員是唯一的,但分數(score)卻可以重複。
集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是O(1)。

redis 127.0.0.1:6379> ZADD redis 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD redis 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD redis 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD redis 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD redis 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE redis 0 10 WITHSCORES

  1. “redis”
  2. “1”
  3. “mongodb”
  4. “2”
  5. “mysql”
  6. “4”

我們通過命令 ZADD 向 redis 的有序集合中添加了三個值並關聯上分數。

  • ZADD key score1 member1 [score2 member2]
    向有序集合添加一個或多個成員,或者更新已存在成員的分數。
  • ZCARD key
    獲取有序集合的成員數。
  • ZCOUNT key min max
    計算在有序集合中指定區間分數的成員數。
  • ZINCRBY key increment member
    有序集合中對指定成員的分數加上增量 increment。
  • ZRANK key member
    返回有序集合中指定成員的索引。
  • ZREM key member [member …]
    移除有序集合中的一個或多個成員返回有序集合中指定成員的索引。
  • ZUNIONSTORE destination numkeys key [key …]
    計算給定的一個或多個有序集的並集,並存儲在新的 key 中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章