Redis資料庫學習

來源:互聯網
上載者:User

標籤:個數   conf   ble   publish   建立   append   set   double   diff   

Redis概述

Redis是一個開源的,先進的key-value儲存。它通常被稱為資料結構伺服器,因為鍵可以包含字串,雜湊,鏈表,集合和有序集合Redis簡介        Redis 是完全開源免費的,遵守BSD協議,是一個高效能的key-value資料庫。Redis 與其他 key - value 緩衝產品有以下三個特點:Redis支援資料的持久化,可以將記憶體中的資料儲存在磁碟中,重啟的時候可以再次載入進行使用。Redis不僅僅支援簡單的key-value類型的資料,同時還提供list,set,zset,hash等資料結構的儲存。Redis支援資料的備份,即master-slave模式的資料備份。(主--從)   Redis優勢        效能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。豐富的資料類型 – Redis支援二進位案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 資料類型操作原子 – Redis的所有操作都是原子性的,同時Redis還支援對幾個操作全並後的原子性執行。豐富的特性 – Redis還支援 publish/subscribe, 通知, key 到期等等特性。Redis與其他key-value儲存有什麼不同?       Redis有著更為複雜的資料結構並且提供對他們的原子性操作,這是一個不同於其他資料庫的進化路徑。Redis的資料類型都是基於基本資料結構的同時對程式員透明,無需進行額外的抽象。Redis運行在記憶體中但是可以持久化到磁碟,所以在對不同資料集進行高速讀寫時需要權衡記憶體,因為資料量不能大於硬體記憶體。在記憶體資料庫方面的另一個優點是,相比在磁碟上相同的複雜的資料結構,在記憶體中操作起來非常簡單,這樣Redis可以做很多內部複雜性很強的事情。同時,在磁碟格式方面他們是緊湊的以追加的方式產生的,因為他們並不需要進行隨機訪問。     

Redis安裝

  Redis安裝分為Linux下安裝和win下安裝,網路教程較多,此處非重點省略!

Redis資料類型

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

 

String(字串)

string是redis最基本的類型,你可以理解成與Memcached一模一樣的類型,一個key對應一個value。string類型是二進位安全的。意思是redis的string可以包含任何資料。比如jpg圖片或者序列化的對象 。string類型是Redis最基本的資料類型,一個鍵最大能儲存512MB。

String操作:

1.set  key value     //設定一個鍵和值,不存在建立,存在則覆蓋,返回ok2.get  key     //擷取一個鍵的值,返回結果3.setnx  key  value      //設定一個不存在的鍵和值4.setex  key seconds  value   //設定一個具有有效期間的索引值5.ttl  key    //查看鍵的有效時間6.setrange  key   位置    value    //替換字串  EX:  setrange  name  4  strs    //將name鍵對應值得第四個位置起替換為.strs7.mset  key1 value1  key2 value2  key3 value3    //大量設定索引值8.msetnx     //大量設定不存在的索引值對9.getset    //擷取原有值替換為其他值    EX:   getset   key   new_value10.getrange     //擷取指定範圍的值    EX:  getrange  key   0   411.mget    //批量擷取值12.incr     //加加操作13.incrby  key   2     //設定某個索引值加上某個數(正負均可)14.decr  //減減操作15.decrby   key   2    //設定某個索引值減去某個數16.append   key   app_value       //給指定鍵追加值17.strlen   key     //求key的長度

list(列表)

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

列表操作

1. lpush  list1  ‘hello’    // 在list1頭部插入一個字串2.rpush  list1  ‘world’    //在list1尾部插入一個字串3.lrange  list1 0 -1    //擷取list1中的所有內容4.linsert  list1  【before/after】 old_value   new_value      //在old值之前或之後插入一個新值5.lset  list1  0  ‘HELLO’    //修改指定位置的值6.lrem  list1  2  ‘hello’     //刪除前倆個hello值7.lrem  list1  -2  ‘hello’   // 刪除後倆個hello值8.lrem  list1  0  ‘hello’    //刪除所有hello值9.ltrim  list1  1  3    //刪除指定範圍外的值10.lpop  list1      //從list1的頭部刪除元素並返回11.rpop  list1   // 從list1的尾部刪除元素並返回12.lindex  list1   1      //返回list1中索引位置上的元素13.llen    list1       //返回list1上的長度

無序集合(set)

Redis的Set是string類型的無序集合。集合是通過雜湊表實現的,所以添加,刪除,尋找的複雜度都是O(1)。sadd 命令添加一個string元素到,key對應的set集合中,成功返回1,如果元素已經在集合中返回0,key對應的set不存在返回錯誤。sadd key member

無序集合操作

1.sadd  key   value       sadd   myset   ‘hello’     //向集合沒有set中添加一條資料2.smembers   myset      //擷取myset中的所有元素3.srem  myset    ‘one’    //刪除myset中的元素one4.spop   myset      //隨機刪除集合中的一個元素並返回5.srandmember  myset    //隨機回去myset中的值但不刪除6.smove  myset1  myset2   lala     //將myset1中的lala移動到myset2中7.scard  myset1     //返回myset1中值得個數8.sismember  myset   lala    //判斷lala是否在myset中9.sdiff   myset1   myset2    //返回倆個集合中的差集10.sdiffstore   newset    myset1  myset2   //將倆個集合的差集儲存到newset中11.sinter   myset1  myset2   //返回倆集合的交集12.sinterstore   newset    myset1   myset213.sunion  myset1   myset2    //返回倆集合的並集14.sunionstore   newset   myset1  myset2

有序集合(zset)

Redis zset 和 set 一樣也是string類型元素的集合,且不允許重複的成員。不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score)卻可以重複。zadd 命令添加元素到集合,元素在集合中存在則更新對應scorezadd key score member 

有序集合操作

1.zadd  zset  1 one   //向zset中添加one,排序為1,1 為權重score2.zrem  zset  one    //刪除zset中的元素one3.zincrby   zset   2 one  //若存在one,score則加2,不存在則添加為24.zrank zset one  //返回one在zset中的排名(從小到大)5.zrevrank  zset  one   //返回one在zset中的排名(從大到小)6.zrangebyscore  zset  2 3 withscores  //返回集合中score在給定區間的元素(閉區間)7.zcount  zset  2  3     //返回指定區間值得個數8.zcard   zset   //返回集合中元素的個數9.zremrangebyrank   zset  3  3    //刪除集合中排名在指定區間的元素10.zremrangebyscore   zset  1  2   //將集合中從小到大排序結果的score在1~2之間的元素刪除

hash(雜湊)

Redis hash 是一個索引值對集合。Redis hash是一個string類型的field和value的映射表,hash特別適合用於儲存物件。

hash操作

1.hset  hashname  key  value   //設定一個雜湊表的索引值2.hsetnx   hashname   key  value   //設定一個雜湊表中不存在的鍵和值3.hmset   hashname  key1  value1  key2  value2……   //大量設定4.hmget   hashnane   key1  key2……    //批量擷取5.hexists   hashname  key    //檢測key是否存在6.hlen   hashname    //擷取雜湊表中鍵的數量7.hdel  hashname  key    //刪除雜湊表中的key8.hkeys  hashname     //返回hash表中所有的鍵9.hvals   hashname    //返回hash表中的所有值10.hgetall  hashname    //返回所有的鍵和值

Redis進階應用程式

1.安全性   requirepass   password

2.持久性   appendonly  yes

修改設定檔  vim /etc/redis/redis.conf

 

 

 

 

 

 

 

 

 

 

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.