Redis常用數據結構和操作


1.String 存入字符類型
        Set name luowen  設置name = luowen 存儲
        Get name          獲取設置好的name的值

        Setnx name luowen 設置name鍵值為luowen 如果存在,則返回0 不存在返回1
        Mset name luowen age 23 salary 233333 設置多個鍵值對 一塊存錯 全成功,全失敗
        Msetnx name maomao age 23 hoby basketball 如果設置多個鍵值對中有存在返回失敗
        Mget name age salary 獲取多個鍵的值

        Getset name maomao 獲取name的值,並設置新的值為maomao

        Setrange name 3 maomao 將鍵name 3字符和面的進行替換 結果為luomaomao
        Getrange name 3 6 獲取鍵name的值 結果為luomaomao

        Append name .com 給鍵nane追加.com 結果為luowen.com 

        Incr age 設置每個值自增 返回結果為24
        Incrby age 6 給name加上6 如果是負數則鍵

        Decr 與incr相反
        Decrby 與decrby相反

        Strlen 返回鍵對應的值得字符長度


2.Hash 方便存對象 鍵值對 

        Hset user:001 name luowen    設置哈表名字user 表里面的001 的name 設置為 luowen
        Hsetnx user name maomao    設置哈希表名字中的name 存在,設置不成功

        Hget user:001 name 獲取hash表的user的001的值

        Hmset user:003 name maomao age 23 批量設置
        Hmget user:003 name age 批量獲取user:003的值

        Hincrby user:003 age 3     給hash表的age值加上3

        Hexists user:003 name 判斷hash表中式否存在name的鍵

        Hlen user:003 返回hash表的所有的字段的數目
        Hkeys user:003 返回hash表的所有字段
        Hvals user:003 返回hash表中所有的值
        Hgetall user:003 返回所有的字段和值

        Hdel user:003 name 對hash的name的值和鍵刪除

3.list 鏈表 (雙向鏈表)
    1.棧:先進后出 隊列:先進先出
    2.lpush 從頭壓入
        Lpush list1 “world” 
        lpush list1 ‘hello”

        Lrange list1 0 -1 把鏈表中的數據從0到尾全部取出
        Word
        hello

    3 rpush 從尾部壓入
        rpush list2 “world” 
        rpush list2 “luowen” 

        lrange list2 0 -1
        world
        luowen
    4.linsert 插入出入數據
        Rpush list3 luowen
        Rpush list3 maomao
        Lrange list3 0 -1
        Luowen
        Maomao
        
        Linsert list3 before maomao love
        Lrange list3 0 -1
        Luowen
        Love
        maomao


        Linsert list3 after luowen love
        Lrange list3 0 -1
        Luowen
        Love
        Maomao

    5 lset 給某個元素復制
        Rpush list5 luowen
        Rpush list5 maomao

        Lset list5 0 “deom”

        Demo
        maomao 

    6 lrem 刪除list表中的數據
        Rpush list6 luowen
        Rpush list6 luowen1
        Rpush list6 luowen2
        Rpush list6 luowen3
        Rpush list6 luowen4

        Lrem list6 1 “luowen”
        刪除list6 中值為luowen的值
    7.ltrim 
        Lpush list7 luowen1
        Lpush list7 luowen2
        Lpush list7 luowen3
        Lpush list7 luowen4
        Lpush list7 luowen5

        Ltrim list7 1 2 (1 2 為保留的范圍)
        Lpush list7 luowen2
        Lpush list7 luowen3
    8 lpop 從鏈表的頭部彈出一個元素
        Lpush list8 luowen1
        Lpush list8 luowen2
        Lpush list8 luowen3

        Lpop list8 
        Lpush list8 luowen2
        Lpush list8 luowen3
    9 rpop 從鏈表的尾部彈出一個元素
        Lpush list8 luowen1
        Lpush list8 luowen2
        Lpush list8 luowen3

        rpop list8 
        Lpush list8 luowen1
        Lpush list8 luowen2
    10 rpoplpush 從一個鏈表彈出,在從頭部壓入到另一個鏈表
        
        List demo1 
        Demo1A
        Demo1B
        Demo1C

        List demo2
        Demo2A
        Demo2B
        Demo2C

        Rpoplpush demo1 demo2

        List demo1 
        Demo1A
        Demo1B

        List demo2
        Demo1C
        Demo2A
        Demo2B
        Demo2C
    11 lindex 返回一個list小標的索引值
        List11
        one
        two
        
        lindex list11 1(list小標)
        two
        lindex list11 0
        one
    12 llen 返回這個鏈表的元素的長度
4.set無序集合    
    1 sadd 向集合中插入一條數據
        Sadd myset1 luowen
    2 srem 刪除集合中的一個元素
        Srem myset1 luowen
    3 smembers 查看集合中的元素
        Smembers myset1
    4 spop 從集合隨機彈出一個元素,返回鍵值
    5 sdiff 兩個集合的差集 返回兩個集合不一樣的,根據第一個集合為標准
        Setdemo1
        One
        two
        
        setdemo2
        one 
        three    
        
        sdiff setdemo1 setdemo2
        two(與setdemo2不一樣)
        sdiff setdemo2 setdeo1
        three(與setdemo1 不一樣)
    6 sdiffstroe 將兩個差集存儲到另外一個集合
        
        Sdiffstore setdemo1 setdemo2 setdemo3
        將setdemo1 setdemo2 的差集放到 setdemo3中
    7 sinter 將兩個集合的交集
    8 sinterstore 將兩個集合的交集存儲到另外一個集合中
    9 sunion 將兩個集合並集
    10 sunionstore 將兩個集合並集並存儲到另外一個集合中
    11 smove 將以個集合中的元素移動到另外一個集合中
        Eg smove myset1 mysetA two mysetB 集合中的two元素移動到mysetB中
    12 scard 查看集合中元素的個數
        Scard myset1查看myset12元素的個數
    13 sismember 判斷是否是集合中的元素
        Sismember myset13 luowen 判斷luowen是否在myset13中的元素
    14 srandmember myset14 隨機取出myset1 中的元素

    15 zadd 添加到有序集合中區
        Zadd myzsent 1 luowen1
        Zadd myzsent 2 luowen2
        Zadd myzsent 3 luowen3
        Zadd myzsent 4 luowen4

        Zrange myzsent 0 -1 withscores
    16 zrem 刪除有序集合中的元素
        Zrem myzsent luowen1 刪除myzsent集合中的luowen1
    17 zincrby myzsent luowen1 3將myzsent luown1的序號更改為4
        如果沒有,就創建他
    18 zrank 找到myzsent 對應值得索引
    19 zrevrank 反過來去索引
    20 zrangebyscore 返回集合中指定的元素
        Zrangebyscore mysetdeom 2 5 withscores
        返回mysetdemo中2-5中的元素
    21 zcount 返回指定空間的數量
        Zcount myset 2  4 返回2 4中的元素個數
    22 zcard 返回集合中所有元素的個數
    23 zremrangbyrank 刪除集合中指定區間的元素,並將索引進行排序
    24 zremrangbyscore 刪除集合中指定元素,按循序進行排序

5 Redis常用命令

    Key-values
    1 keys * 匹配鍵所有的鍵. 模糊匹配 keys my* 取出所有已my開頭的鍵
    2 exists 判斷是否鍵 exists name判斷是否有name這個鍵是否存在
    3 del 刪除鍵 del name 刪除name的鍵
    4 expire 設置過期時間 expire key time 
    5 ttl key 查看鍵的過期時間
    6 select database 選擇數據庫
    7 move key dababase1 講key移動dao database1中的數據庫中
    8 persist 取消鍵的過期時間 
    9 randomkey 隨機返回一個鍵的值
    10 rename 重命名一個鍵
    11 type key 判斷key的數據類型

    Server
    1 ping ping我們的主機能否鏈接 鏈接是否存活
    2 echo 命令 echo demo直接輸出
    3 select 選擇數據庫 select 0-16個數據庫
    4 quit exit 退出鏈接
    5 dbsize 返回數據庫的鍵的個數
    6 info 返回服務器相關信息
    7 config get 返回服務配置信息
    8 flush db 清空數據庫
    9 flushall 刪除所有數據庫中所有的鍵
6 Redis 高級應用 1 在配置文件里面設置 requirepass password 2 進入后 auth 密碼 進行授權 方法二: 登入或在后面加上 –a 加上密碼 3 主從復制: One: 一個master服務器可以擁有多個slave Two: 一個salve可以有多個master 並且還可以與其他的salve相連接 配置salve 打開salveof注釋 並添加主機的ip以及端口 主機加了密碼的時候還需要配置masterauth 密碼 4 redis 的事務處理 輸入:multi 打開一個上下文 Set age 10 Set age 144 ----------------------------------------------------------- 上面的全部放入隊列最后執行 Exec 最后age為144 回滾 Discard Watch 監視鍵的命令 5 Redis的持久化 方式一: snapshotting (快照)將內存的數據寫入到文件中 save 500 32 500秒內有32個鍵發生變化則發起快照到文件中 方式二: append only file 將沒次寫修改的命令保存到文件中 配置:打開append only Appendfsync yes Appendfsync always 每次都寫入 Appendfsync everysec 每個一秒寫入 Appendfsync no 不寫入 6 發布和訂閱消息 訂閱:    Subscribe tv1 tv2 訂閱了兩個頻道 發布: Publish tv1 luweo 注:publish tv1的信息 訂閱的信息都可以收到 7 虛擬內存 方式一:暫時把不使用的數據放到硬盤里面   方式二:可以把數據分割到其他的slave數據服務器中


免責聲明!

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



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