redis學習筆記

redis和memcached的區別?redis

二者均可以存儲鍵值映射,彼此的性能也相差無幾;可是redis可以自動以兩種不一樣的方式將數據寫入硬盤,而且redis除了能存儲普通字符串以外,還能夠存儲其它的四種結構(散列,列表,集合,有序集合),而memcached只能存儲普通的字符串鍵。 redis 是使用內存存儲的非關係型數據庫,有五種數據結構:字符串,散列,列表,集合,有序集合;每種數據類型都有本身的專屬命令,另外還有批量的操做和不徹底的事務支持;發佈和訂閱,主從複製,持久化,腳本(存儲過程) memcached是使用內存存儲的鍵值緩存。鍵值之間的映射。建立命令,讀取命令,更新命令,刪除命令,以及其餘幾個命令;爲提高性能而設的多線程服務器。數據庫

redis持久化: 第一種持久化快照:指定時間段內有指定數量的寫操做時,經過調用兩條轉存儲的到硬盤的命令來執行其中的任何一條; 第二種持久化aof:將全部修改數據庫的命令都寫入一個只追加的文件裏面,用戶能夠根據數據數量的重要程度,將只追加設置爲:不一樣步,每秒同步一次或者每寫入一個命令就同步一次;緩存

一、字符串 String 能夠是整數、字符串或浮點數 對整個字符串或字符串的其中一部分執行操做;對整數和浮點數執行自增或者自減操做(對字符串存儲的數值執行自增或自減的操做); GET SET DEL服務器

二、散列 Hash 包含鍵值對的無序散列列表 添加、獲取、移除單個鍵值對;獲取全部鍵值對 注意:存儲的值既能夠是字符串,也能夠是數字值,而且用戶一樣能夠對散列存儲的數字值執行自增操做或者自減操做。 HSET HGET, HDEL, HGETALL(獲取全部的元素)數據結構

三、列表 List 一個鏈表,鏈表上的每一個數據節點包含了一個字符串 ; 從鏈表的兩段推入或者彈出元素;RPUSH(插入),LPOP(刪除) 根據偏移量對鏈表進行修剪; 讀取單個或者多個元素;LINDEX(查找指定位置的單個元素),LRANDE(獲取列表上給定範圍的值) 根據值查找或者拔除元素多線程

四、集合 set 包含字符串的無序收集器,而且被包含的每一個字符串都是獨一無二,各不相同的; 添加、獲取、移除單個元素;SADD(將給定元素添加到集合),SMEMBERS(返回集合包含的全部元素),SREM(若是元素存在,就移除這個元素) 檢查一個元素是否存在於集合中;SISMEMBER 計算交集、差集、並集;SINTER(交集),SUNION(並集),SDIFF(差集) 從集合中隨機獲取元素memcached

五、有序集合 zset 字符串成員與浮點數分值之間的有序映射,元素的排列順序由分值的大小決定 添加、獲取、移除單個元素;根據分值範圍或者成員來獲取元素 ZADD(將一個帶有給定分值的成員添加到有序集合裏面) ZRANGE(根據元素在有序排列中所處的位置,從有序集合裏面獲取多個元素) ZRANGEBYSCORE(獲取有序集合在給定分值範圍內的全部元素) ZREM(若是給定成員存在於有序集合,那麼移除這個成員)性能

發佈和訂閱 訂閱者負責訂閱頻道,發送者負責向頻道發送二進制字符串消息;每當有消息被髮送至頻道時,頻道的全部訂閱者都會看到消息;線程

相關文章
相關標籤/搜索