key-value類型儲存資料庫--Redis

來源:互聯網
上載者:User

標籤:man   tor   設定   png   sha   分享圖片   nihao   3.2   發送請求   

1.簡介

Redis是完全開源的ANSI C語言編寫、遵守BSD協議,高效能的key-value資料庫。

1.1特點
  • Redis支援資料的持久化,可以將記憶體中的資料儲存在磁碟中,重啟的時候可以再次載入進行使用。
  • Redis不僅僅支援簡單的key-value類型的資料,同時還提供list,set,zset,hash等資料結構的儲存。
  • Redis支援資料的備份,即master-slave模式的資料備份。
1.2優勢
  • 效能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
  • 豐富的資料類型 – Redis支援二進位案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 資料類型操作。
  • 原子 – Redis的所有操作都是原子性的,意思就是要麼成功執行要麼失敗完全不執行。單個操作是原子性的。多個操作也支援事務,即原子性,通過MULTI和EXEC指令包起來。
2.安裝 2.1windows安裝

   在  https://github.com/MicrosoftArchive/redis/releases下下載Redis-x64-3.2.100.zip。

將下載的包移動到c盤下,建立redis檔案夾,將壓縮包在redis檔案夾下解壓。

開啟一個 cmd 視窗 使用cd命令切換目錄到 C:\redis 運行 redis-server.exe redis.windows.conf 。

C:\redis> redis-server.exe redis.windows.conf                _._           _.-``__ ‘‘-._      _.-``    `.  `_.  ‘‘-._           Redis 3.2.100 (00000000/0) 64 bit  .-`` .-```.  ```\/    _.,_ ‘‘-._ (    ‘      ,       .-`  | `,    )     Running in standalone mode |`-._`-...-` __...-.``-._|‘` _.-‘|     Port: 6379 |    `-._   `._    /     _.-‘    |     PID: 11604  `-._    `-._  `-./  _.-‘    _.-‘ |`-._`-._    `-.__.-‘    _.-‘_.-‘| |    `-._`-._        _.-‘_.-‘    |           http://redis.io  `-._    `-._`-.__.-‘_.-‘    _.-‘ |`-._`-._    `-.__.-‘    _.-‘_.-‘| |    `-._`-._        _.-‘_.-‘    |  `-._    `-._`-.__.-‘_.-‘    _.-‘      `-._    `-.__.-‘    _.-‘          `-._        _.-‘              `-.__.-‘[11604] 24 Nov 11:04:00.253 # Server started, Redis version 3.2.100

這時候另啟一個cmd視窗,原來的不要關閉,不然就無法訪問服務端了。

切換到redis目錄下運行 redis-cli.exe -h 127.0.0.1 -p 6379 。

設定索引值對 set myKey abc

取出索引值對 get myKey

C:\redis>redis-cli.exe -h 127.0.0.1 -p 6379127.0.0.1:6379> set mykey yaohongOK127.0.0.1:6379> get mykey"yaohong"127.0.0.1:6379>
3.配置

3.1擷取配置

 #CONFIG GET *

3.2便捷配置

#CONFIG SET loglevel "notice"
4.資料類型

Redis支援五種資料類型:string(字串),hash(雜湊),list(列表),set(集合)及zset(sorted set:有序集合)。

5.命令 5.1基本命令

啟動redis用戶端

C:\redis>redis-cli127.0.0.1:6379>

檢測redis服務是否啟動

127.0.0.1:6379> PINGPONG

 串連遠程

C:\redis>redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
redis 127.0.0.1:6379>redis 127.0.0.1:6379> PING
 5.2鍵(key)

 增:SET keyname redis  ---key後面跟key的名稱和key的值

 刪:del keyname

 改:EXPIRE yhkey 60  ---修改key的到期時間、EXPIRE以秒計算、  PEXPIRE 以毫秒計算   

       ttl myname -----修改key永不到期

       rename key yhkey9

查:keys * 查詢所有key

      keys  yh* 過濾出包含yh的key

      exists keyname  判斷key是否存在

       pttl mekey尋找key的剩餘時間

 5.3Redis-String
#增
127.0.0.1:6379> SET keyname2 "hello myname is yaohong, what is your name?"OK
#查127.0.0.1:6379> GET keyname2"hello myname is yaohong, what is your name?"

#截取字串127.0.0.1:6379> GETRANGE keyname2 2 14"llo myname is"127.0.0.1:6379> keys *1) "keyname2"2) "yhkey1"3) "yhkey9"4) "yhkey3"5) "keyname1"6) "yhyhkey"7) "mykey"

#同時擷取多個字串127.0.0.1:6379> GET yhkey1 yhkey3(error) ERR wrong number of arguments for ‘get‘ command127.0.0.1:6379> MGET yhkey1 yhkey31) "redis"2) "redis"127.0.0.1:6379>
 5.4Redis-Hash

增:hmset(同時將多個file-value設定到hash表中)、hget

刪:hdel

查:hget、hgetall、hkey擷取hash表中所有域(file)、

  hmget myhash file1 file2 file3(返回雜湊表中,一個或多個給定欄位的值)

      hvals擷取雜湊表中所有值

 判:hexists 判斷是否存在

       hlen擷取file個數

5.5Redis-List

Redis列表是簡單的字串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)

增:lpush(頭部插入元素)、rpush(尾部插入元素)

刪:lpop(移除列表第一個元素)、rpop(移除列表最後一個元素)、lrem keyname count value(count大於0從頭部開始刪除value元素)

查:llen(擷取列表長度)、lreng key start stop(擷取start到stop的元素)

改:lset、rset

5.6Redis-Set

增:sadd、

      sunionstore  myset myset1 myset2  命令將給定集合的並集儲存在指定的集合 myset中

刪:spop移除集合中隨機數

      srem按值移除集合中元素

查:smembers、scard(擷取成員數)、

      sdiff(列出第一個集合擁有,第二個集合沒有的元素)、

      sdiffstore(將第一個集合擁有,第二個集合沒有的元素儲存到第三個集合中)、

      sinter(列出兩個集合的交集)

      smembers列出集合所有成員

改:smove  myset1 myset2 "key1"   將key1從myset1移到myset2

判:sismember 判斷元素是否是key的成員

5.7Redis-ZSet

Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重複的成員。

增:zadd keyname scoren value

刪:zrem keyname nember 移除有序集合中的一個或多個成員

      zremrangebylex key min max 移除有序集合中給定的字典區間的所有成員。

      zremrangebyrank key start stop  移除有序集合中給定的排名區間的所有成員

      zremrangebyscore key min max  移除有序集合中給定的分數區間的所有成員

查:zcard 擷取集合的成員數

      zcount key min max 計算在有序集合中指定區間分數的成員數 

      zrange key start stop WITHSCORES 通過索引區間返回有序集合成指定區間內的成員

5.8事務

Redis 事務可以一次執行多個命令

開始事務:MULTI

執行事務:EXEC

取消事務:DISCARD    取消事務,放棄執行事務塊內的所有命令

 監視事務:WATCH      監視一個(或多個) key ,如果在事務執行之前這個(或這些) key 被其他命令所改動,那麼事務將被打斷

取消監視:UNWATCH   取消 WATCH 命令對所有 key 的監視。

5.9指令碼

Eval 命令使用 Lua 解譯器執行指令碼。

5.10伺服器

Redis 伺服器命令主要是用於管理 redis 服務。

統計參數:INFO

重設 INFO 命令中的某些統計資料:config resetstat

鍵數:dbsize

 刪除所有key:flushall

刪除當前資料庫key:flushdb

非同步儲存資料到硬碟:save

6.Redis進階6.1Redis 資料備份與恢複

備份:save

恢複:1:將產生的rdb檔案移動到 redis 安裝目錄(執行config get dir)並啟動服務即可

建立 redis 備份檔案也可以使用命令 BGSAVE,該命令在後台執行。

6.2Redis 安全
設定密碼:config set requirepass "itnihao"
auth itnihao擷取密碼:CONFIG get requirepass
6.3Redis 效能測試6.4Redis 用戶端串連

查看最大串連數:config get maxclients

設定最大串連數:redis-server --maxclients 100000

6.5Redis 管道技術

Redis 管道技術可以在服務端未響應時,用戶端可以繼續向服務端發送請求,並最終一次性讀取所有服務端的響應。

6.6Redis 分區

分區是分割資料到多個Redis執行個體的處理過程,因此每個執行個體只儲存key的一個子集。

key-value類型儲存資料庫--Redis

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.