no sql 資料庫 -- redis 應用

來源:互聯網
上載者:User

標籤:遠程   從零開始   app   協議   daemonize   card   doc   hle   key   

1 .入門概述
          一 、是什麼 (who)  

                 (1)redis remote dictionary server(遠程字典伺服器)?

                         是完全開源免費的,用C語言編寫的,遵守Bsd協議,是一個高效能的(key value)分布式記憶體資料庫
                         基於記憶體運行並支援持久化的NOSQL資料庫,是當前最熱門的NOSQL資料庫之一,也被人們成為資料節後伺服器
                (2)redis與其他key—values緩衝產品有以下三個特點。
                          A . redis支援資料的持久化,可以將記憶體中的資料保持在磁碟中,重啟的話可以再次載入進行使用
                          B . redis不僅僅支援簡單的key—value類型的資料,同是還提供 list set zset hash等資料結構的儲存
                          C . redis支援資料的備份,幾master—slave模式的資料備份

          二能幹嘛 (what)
                   (1)記憶體儲存和持久化:redis支援非同步將記憶體中資料寫到硬碟上,同是不影響繼續服務取最新N個資料的操作,如:
                   (2)可以將最新的10條評論的ID放在redis的list集合裡面類比類似於httpsession這種需要設定到期時間的功能
                   (3)發布 訂閱訊息系統
                   (4)定時器 計數器

          三 去哪下(where)
                    http:// redis.io/
                    http://www.redis.cn/

          四 怎麼玩
                    資料類型 基本操作和配置
                    持久化和複製 ROB/AOP
                   事務的控制
                   複製

             五   解決java 串連 vmware redis 連不上問題?
                   (1).關閉防火牆 service iptables status
                   (2).修改redis.conf設定檔,將連接埠127.0.0 注釋掉,這樣任何ip都可以訪問
                   (3).修改redis.conf設定檔, protected-mode yes 
                   (4).修改 redis.conf設定檔,加上密碼 requirepass yes

             六   redis 安裝連結

             七  jedis 操作redis資料庫

2 . redis 命令

               一  redis 5大資料類型   redis命令大全

                (1).預設16 個資料庫 ,類似數組下表從零開始,初始預設使用零號
                (2). select  命令     切換資料庫 select 0
                (3) DBsize          查看當前資料庫的key的數量
                (4).keys *     查看當前庫的所有key
                (5). flushdb    清除點當前庫的所有資料
                (6). flushall    清除所有的庫的所有資料
                (7). exists k1   判斷在庫裡 是否有當前key
                (8). move 鍵名 庫名  把key和values 剪下到 庫裡
                (9). ttl 注意英文l 鍵名             查看還有多少秒到期,-1 表示永不到期,-2表示已到期
               (10).type key   查看你的key 是什麼類型
                (11)expire  鍵名  秒 表示給key賦值到期時間 單位為妙
                二、string類型資料

                        string 是redis 最基本的類型,你可以理解成與memcache一模一樣的類型,一個key對應一個value
                        string 類型是二進位安全的。意思是redis的string可以包含任何資料,比如jpg圖片或者序列化的對象
                        string 類型是redis最基本的資料類型,一個redis中字串value最多可以是521m
                  (1)   set/get/del   分別是添加 查詢 刪除 追加 截取
                  (2)  append  鍵名    字串         追加字串
                    (3)     strlen    鍵名                         查看key的長度
                    (4)     incr      鍵名                          執行加上 1 (value 必須是數)
                    (5).   incrby    key        increment    遞增倍數
                    (6).   decr                                        執行減去 1
                    (7).   decrby                                    遞減倍數
                    (8).   getrange   鍵名  開始角標  結束角標            擷取指定區間範圍內的值
                    (9).    setrange   鍵名  開始角標  字串             設定指定區間範圍內的值
                    (10). setex      鍵   妙值
                    (11). setnx key values                如果有key 賦值失敗
                    (12). mset 添加多個 mget 查詢多個
                    (13). msetnx 添加多個 如果添加key中有一個重複的 賦值失敗

                 三 、 list (列表)

                          redis列表是簡單的字串列表,按照插入順序排序。你可以添加一個元素導列表的頭部(左邊)或者尾部的(右邊)
                          它的底層實際是個鏈表
                     (1). lpush key []數組 是先進後出
                     (2). rpush key []數組 是先進先出
                     (3). lrang key start end -1代表所有 查詢list
                     (4). lpop key 棧定出去一個 移除頂部的一個
                     (5). rpop key 棧底出去一個 移除底部的一個
                     (6). lindex key 角標位置 按照索引下標獲得元素(從上到下)
                     (7). llen key 顯示list 長度
                     (8). lrem key 刪除 N 個value
                     (9). ltrim key 開始index 結束index 截取指定範圍的值後再賦值給key
                     (10).rpoplpush 源列表 目的列表
                     (11).lset key index valus 表示更換角標 為 valus值
                     (12). linsert key before 值1 插入角標 前 的values值
                     (13). linsert key after 值1 插入角標 後 的values值
                     (14). 它是一個字串鏈表,left right都可以插入
                              如果鍵不存在,建立新的鏈表  如果鍵已存在,新增內容  
                             如果值全部移除 對應的鍵也就消失了
                             鏈表的操作無論是頭和尾效率都極高,但如是對中間元素進行操作,效率就很慘淡了。

                    四、 set (集合)

                                redis的set 是string類型的無序集合,它是通過hashtable實現的
                                (1). sadd key [] 添加資料 添加重複資料只能有一個
                                (2).smembers key 查詢所有key 的集合
                                (3).sismember key 判斷是否有key 值
                                (4).scard key 擷取集合裡面的元素個數
                                (5).srem key values 刪除集和中元素
                                (6).srandmember key 某個整數(隨機出幾個數)
                                (7).spop key 隨機出棧
                                (8).smove key1 key2 在key1 裡某個值 作用是將key1 裡的某個值賦給key2
                                (8).數學集合類
                                     差集 sdiff set1 set2 交集 sinter 並集 sunion

                         五 hash(雜湊)

                                redis hash 是一個索引值對集合
                               redis hash 是一個string類型的field和valus的映射表,hash特別適合用於儲存物件
                               類似java 裡面的map<string,object>
                              (1). hset key field values 添加
                              (2). hge  t key field 查詢
                              (3). hmset key field values ( field values 、、、) 添加多個
                              (4). hmg    et key field(field、、、、、)得到多個
                              (5). hgetall key 得到key values key values
                              (6). hdel key field 刪除
                              (7). hlen key 查詢長度
                              (8). hexists key field 判斷是否有filed
                              (9). hkeys key名字 /hvals key 名字 查詢集合
                             (10). hincreby key field increment 遞增數字 hincreby hash2 k4 2
                              (11). hincrebyfloat key field increment 遞增小數
                              (12). hsetnx key field values 添加不重複的資料

                          六 zset (有序集合)

                                   redis zset和set 一樣也是string 類型元素的集合,且不允許重複的成員
                                    不同的是每個元素都會關聯一個double類型的分數
                                    redis 正式通過分數來為集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score) 卻可以重複
                                 (1). zadd key score1 v1 score2 v2 添加
                                 (2). zrange key 0 -1 查詢所有
                                 (3). zrangebyscore key 開始score 結束score 截取包含當前的分數 zrangebyscore zset1 (1 (2 不包含當前的值
                                 (4). zrangebyscore zset1 1 2 limit 0 1 分頁
                                  (5). zrem key 某score下對應的values值, 刪除元素
                                  (6). zcard key 查詢集合大小
                                (7). zcount key score 區間 統計區間大小
                                  (8). zrank key values 擷取下標值
                                   (9). zscore key 對應值 獲得分數
                                  (10). zrevrank key values值 逆序擷取下標值
                                  (11). zrevrange zset1 0 -1 逆序擷取資料值
                                  (12). zrevrangebyscore key 結束分數 開始分數

             三.snapshotting   快照
                                 (1)  rdb redis database 縮寫 持久化檔案到dump.rdb
                                 (2)  aof append only file 縮寫 appendonly.aof 設定檔預設 no
                                    aof 檔案如果錯誤 可以用redis-check-aof --fix appendonly.aof

         四.redis 實務
                          discard 取消實務,放棄執行事務塊內的所有命令 放棄事務
                         exec 執行所有事務塊內的命令 提交事務 有一條語句錯誤 側執行錯誤
                         multi 標記一個事務內的命令 開啟事務
                        unwatch 取消watch命令對所有key的監事
                        watch key 監事一個 ,如果早事務執行之前key 被其他命令所改動 ,那麼事務將被打斷

           五.叢集
                    (1).拷貝多個redis.conf
                    (2).開啟daemonize yes
                    (3).pid 檔案名稱字
                    (4). 指定連接埠
                    (5).Log 檔案名稱字
                    (6).Dump.rdb
          

 

 

 

 



no sql 資料庫 -- 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.