redis基本和命令


忙了很久一直沒時間整理工作中的零零星星,現在把工作過程中的點點滴滴的筆記搬到博客上,以饗讀者和自己;

0. redis基本路徑
        Selected config:
        Port           : 6379
        Config file    : /etc/redis/6379.conf
        Log file       : /var/log/redis_6379.log
        Data dir       : /var/lib/redis/6379
        Executable     : /usr/local/bin/redis-server
        Cli Executable : /usr/local/bin/redis-cli

    Lua啟動,選擇加載配置項
        服務端:
        #/usr/local/bin/redis-server /etc/redis/6379.conf
        客戶端:
        #/usr/local/bin/redis-cli

    Redis數據類型及操作:
        String:
        指令:{
                set
                setnx       :如果key已經存在, 返回0
                setex       :指定鍵值對的有效期, setex [key] [expire] [value]   /類似於:set [key] [value] [EX expire]
                setrange    :設置key-value值的子字符串,下標從0開始到第i位置,不包含i
                mset
                msetnx
                get
                getset
                getrange
                mget
                incr
                incrby
                decr
                decrby
                append
                strlen
            }

        Hash:是一個string類型的field-value的映射表,它的添加刪除平均都是O(1)的效率
        指令:{
                hset
                hsetnx
                hmset
                hget
                hmget
                hincrby
                hexists
                hlen
                hdel
                hkeys
                hvals
                hgetall
            }

        List:是一個鏈表結構, 主要功能是pop,push,獲取一個范圍的所有值等,key理解為鏈表的名字
                list類型其實就是每一個子元素都是string類型的雙向鏈表.
        指令:{
                lpush   
                rpush
                linsert   : linsert key [BEFORE|AFTER] [pivot] [value]
                            在list的特定的值的位置之前或之后添加字符串元素
                lset      : lset key [index] [value] 設置list中指定下標的元素值
                lrem      : lrem key [count] [value] 從list中刪除count個和value相同的元素
                            count>0,從頭刪除;
                            count=0,全部刪除;
                            count<0,從尾刪除;
                ltrim     : ltrim key [start] [stop] 保留key的值中指定范圍內的數據
                lpop      : 從list的頭部刪除元素
                rpop      : 從list的尾部刪除元素
                rpoplpush : rpoplpush [source] [destination], 整個操作是原子的
                            從source的尾部移除元素,並添加到destination的頭部,返回被移除的元素值
                lindex    : lindex key [index] 取list中index位置的元素
                llen      : 返回key對應list的長度
            }

        Set:
        指令:{}


        鍵值指令:
            [
                keys :返回給定pattern的所有key
                exists: 確認一個key是否存在
                del : 刪除一個key
                expire : 設置一個key的過期時間(秒為單位)
                ttl : 用於獲取key的有效時長
                persist : 移除給定key的過期時間
                move : 把當前數據庫中的key移動到其它庫中
                rename : 重命名key
            ]


        服務指令:
            [
                select :選擇數據庫存取, redis數據庫編號從 0~15 默認16個庫
                dbsize :獲取當前數據庫的key
                info :  獲取服務器的信息和統計,用於說明服務器的基礎信息,包括版本啟動時間等;
                config get: 獲取服務器配置信息
                flushdb : 刪除當前選擇數據庫中的所有key
                flushall : 刪除所有庫中的所有key
            ]


    主從復制基本配置:
        Redis主從復制中一個主服務可以有多個服務, 一個從服務可以有多個從服務;
        對應配置,只需要修改redis.conf中的slaveof參數
            #slaveof <masterip> <masterport>
            slaveof 127.0.0.1 6379

    啟動master
            #redis-server /usr/local/redis/conf/redis_6379.conf
            #redis-cli
    啟動slave(假設端口3689)
            #redis-server /usr/local/redis/conf/slave.conf
            #redis-cli -p 6389

        如果master服務設置有密碼,則需要配置masterauth參數
            masterauth <master-password>

        查看redis連接數
            redis-cli info | grep connected

            如果客戶端的idle空閑時間太長,連接池維持了太多的連接,則需要把不用的連接及時釋放掉;
            redis 127.0.0.1:6379> client list
            redis 127.0.0.1:6379> CONFIG SET timeout 30

    Cluster集群配置
        cluster-enabled yes 開啟
        每一個集群節點有一個集群配置文件;它不是手工創建的,是redis節點創建和更新的;
        確保同一系統上運行的redis集群節點的配置文件名不重疊

1. redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,
    並且在此基礎上實現了master-slave(主從)同步

2. pipeline 壓縮請求數量
    pipeline機制將多個命令匯聚到一個請求中,可以有效減少請求數量,減少網絡延時。

3. script 壓縮復雜請求
    script核心思想是在redis命令里嵌入Lua腳本,來實現一些復雜操作。

4. cluster
     Redis 集群不像單機版本的 Redis 那樣支持多個數據庫,集群只有數據庫 0,而且也不支持 SELECT 命令。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM