天天看點

第1講 Redis部署與基本操作

redis是一個key-value存儲系統。

和memcached類似,它支援存儲的value類型相對更多,

包括string(字元串)、list(連結清單)、set(集合)和zset(有序集合)。

這些資料類型都支援push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。

在此基礎上,redis支援各種不同方式的排序。與memcached一樣,為了保證效率,資料都是緩存在記憶體中。

差別的是redis會周期性的把更新的資料寫入磁盤或者把修改操作寫入追加的記錄檔案,并且在此基礎上實作了master-slave(主從)同步。

redis 是一個高性能的key-value資料庫。

redis的出現,很大程度補償了memcached這類key/value存儲的不足,在部 分場合可以對關系資料庫起到很好的補充作用。

它提供了python,ruby,erlang,php用戶端,使用很友善。

memcache 記憶體緩存服務,緩存資料儲存在記憶體中,一旦斷電重新開機,資料将丢失

mongodb

開源免費的nosql 資料庫,提供資料持久化服務,以文檔的形式提供資料組織方式,而不是表

redis

開源免費的 nosql資料庫,提供資料持久化服務,即能實作記憶體緩存服務,也能提供資料結構服務

取代mysql 自建索引

用來彌補關系型資料的不足

路徑/redis-server 配置檔案

注意:需要修改配置檔案

daemonizeno 改為

daemonize yes #背景啟動

端口 6379

1)set 鍵 "值"

設定一個鍵和值,鍵存在則覆寫,傳回ok

2)get 鍵

擷取一個鍵的值,傳回值

3) setnx 鍵 值

隻有當該鍵不存在時設定一個鍵的值,若鍵已存在則傳回0表示失敗(防止覆寫),

4) setex 鍵 [有效時間] 值

設定一個指定有效期的鍵和值(機關秒)。不寫有效時間則表示永久有效,等價于set

5)ttl 鍵

以秒為機關,傳回給定 key 的剩餘生存時間

>當 key 不存在時,傳回 -2 。

當 key 存在但沒有設定剩餘生存時間時,傳回 -1 。

否則,以秒為機關,傳回 key 的剩餘生存時間。

6) setrange 鍵 位置 子字串

替換子字元串 (替換長度由子子串長度決定)

7) mset 鍵1 值1 鍵2 值2 鍵3 值3 ....

批量設定鍵和值,成功則傳回ok

8) mget 鍵1 鍵2 鍵3....

批量擷取值

9) msetnx 鍵1 值1 鍵2 值2 鍵3 值3 ....

批量設定不存在的鍵和值,成功則傳回ok

10) getset 鍵 新值

擷取原值,并設定新值

11) getrange 鍵 0 4

擷取指定範圍的值(擷取指定0到4位置上的值,字元串位置從0開始計算)。參考setrange。

12) incr鍵

指定鍵的值做加1操作,傳回加後的結果(隻能加數字)。

13) incrby 鍵 m

//其中m可以是正整數或負整數

加指定值,鍵不存在時候會設定鍵

14)decr 鍵

指定鍵的值做減1操作,傳回減後的結果。

15) decrby 鍵 n

//其中n可以是正整數或負整數

設定某個鍵減上指定值

16)append 鍵 追加字串

給指定key的字元串追加value,傳回新字元串值的長度

17) strlen 鍵名

strlen求一個鍵長度

18)del指令:删除一個鍵

string鍵類型:所有的值(可以是任何資料類型)都儲存在一個鍵當中,放在一個記憶體塊中
hashs鍵類型:所有的值也都儲存在一個鍵當中,隻是放在不同的記憶體塊中,每個塊稱作字段

1)hset key field value

設定一個鍵,在鍵中儲存字段和值

2)hsetnx 鍵 字段 值

設定一個鍵中,不存在的字段和值。如果字段存在則報錯(成功傳回1,失敗傳回0)

3)hmset 鍵 字段1 值1 字段2 值2 …

在一個鍵中,批量設定字段

4)hget 鍵 字段

擷取鍵中的一個指定字段的值

5)hmget 鍵 字段1 [字段2…]

擷取鍵中一個或多個字段的值

6) hexists :判斷指定的字段是否存在于鍵中

例如:

7) hlen :擷取鍵中的字段數量

8)hkeys :擷取鍵中的所有字段名

9)hvals:擷取鍵中所有字段的值

10)hgetall :擷取鍵中的所有字段和值

11)hincrby:将鍵中指定字段的值,增加指定的數字

12)hdel 鍵 字段1 字段2

删除鍵中的一個或多個字段

list是一個連結清單結構,主要功能是push、pop、擷取一個範圍的所有值等等,操作中key了解為連結清單的名字。redis的list類型其實就是一個每個子元素都是string類型的雙向連結清單。

1)lpush 鍵 值1 [值2…]

從隊列左邊向隊列寫入一個或多個值(認為隊列的左面為隊列頭,右邊為隊列尾)

2)lrange 鍵 起始下标 終止下标

從隊列中擷取指定的傳回值(從隊列左邊向右擷取)

3)rpush鍵 值1 [值2…]

從隊列右邊向隊列寫入一個或多個值

4)linsert 鍵 before|after 原值 新值

在隊列中指定元素之前或之後插入新值

5)lset 鍵 下标 新值

給隊列中指定元素設定新值

6)lrem 鍵 n 指定值

7)ltrim 鍵 起始下标 結束下标

修剪隊列,讓隊列隻保留指定指定範圍内的元素

8)lpop 鍵

從指定的隊列左面移除一個值

9)rpop 鍵

從指定隊列的右邊移除一個值

10)rpoplpush 源隊列 目标隊列

移除源隊列的最後一個元素,并把該元素寫入目标隊列

11)lindex 鍵 下标

擷取隊列中指定下标元素的值

12)llen 鍵

獲得隊列的長度

set是集合,它是string類型的無序集合。對集合我們可以取并集、交集、差集。通過這些操作我們可以實作社交網站中的好友推薦和blog的tag功能。

1) sadd 鍵 值1[值2…]

添加一個或多個元素到集合中

2) smembers 鍵

擷取集合裡面所有的元素

3) srem 鍵 值1[值2…]

從集合中删除指定的一個或多個元素

4) spop 鍵

随機從集合中删除一個元素,并傳回

5) srandmember 鍵 值

随機傳回集合中一個元素,但不删除

6) scard 鍵

擷取集合裡面元素個數

7) sismember 鍵 值

确定一個指定的值是否是集合中的元素

8) sdiff 集合1 集合2

傳回集合1與集合2的差集。以集合1為主

9) sdiffstore 新集合 集合1 集合2

傳回集合1和集合2的差集,并把結果存入新集合

10) sinter 集合1 集合2

獲得兩個集合的交集

11) sinterstore 新集合 集合1 集合2

獲得集合1和集合2的交集,并把結果存入新集合

12) sunion 集合1 集合2

獲得指定集合的并集

13) sunionstore 新集合 集合1 集合2

獲得指定集合的并集,并把結果儲存如新集合

14) smove 源集合 目标集合 值

将指定的值從源集合移動到目标集合

上一篇: vsftp
下一篇: vsftp