redis 經常使用命令&導入

  • redis 下載(docker 安裝) 和命令

拉取 redis 鏡像(alpine 是經典版)redis

docker  pull  redis:4-alpine

把本機的6379映射到虛擬的6379docker

docker run -it -p 6379:6379 --name redis(名字) redis:4-alpine(下載的鏡像名)

進入redisshell

docker exec -it redis /bin/sh

與redis進行交互數據庫

redis-cli

一. Redis特性

  1. 速度快數組

    基於內存, C語言實現, 單線程架構, 集性能和優雅於一身的代碼緩存

  2. 基於鍵值對的數據結構服務器
REmote DIctionary Server. 值能夠是字符串/哈希/列表/集合/有序集合, Bitmap等等
  1. 豐富的功能服務器

    鍵過時功能. 發佈-訂閱功能(實現消息系統), Lua腳本, 簡單的事務, 流水線(Pipeline)網絡

  2. 簡單穩定session

    代碼少, 早期版本2萬行. 3.0版本之後加入集羣功能, 5萬行. 單線程模型數據結構

  3. 客戶端語言多
  4. 持久化

    (RDB和AOF方式)存放到硬盤中

  5. 主從複製
  6. 高可用和分佈式

二. Redis使用場景

  1. 緩存/session
  2. 排行榜系統
  3. 計數器應用

    視頻的播放/瀏覽次數. 併發量太大, 對傳統數據庫挑戰較大

  4. 社交網絡

    贊/踩, 粉絲, 共同好友/喜愛等等雜的數據

  5. 消息隊列系統

    主要用於業務解耦

三. Redis安裝

使用docker安裝redis

四. Redis Shell

  1. redis-server 啓動Redis

    默認端口6379, 使用--port xxx指定端口號
    指定配置文件

  2. redis-cli 命令行接口

五. Redis使用

1. 全局命令

keys *        查看全部key

dbsize         key的數量

exists +key      判斷存在幾個

del  +key           刪除幾條

expire +key +seconds    設置過時時間

type +key                查看一個能夠對應的value類型

set +key +value +ex      添加時可同時設置他的過時時間 ex填過時時間

get +key          獲取一個key的值

2. 數據結構和內部編碼

2.1 數據結構

  1. string 字符串
key 都是字符串類型, 並且其餘幾種數據結構都是在字符串類型基礎上構建的.
    
    字符串類型的值實際上能夠是簡單或複雜的字符串(JSON/XML), 數字, 甚至是二進制(圖片, 音頻, 視頻, 最大512M)

    mset, 批量設置值, 能夠提升開發效率
    mget, 批量獲取值
    
    計數, 
    incr key, ++      設置自增 (只有value是數字時)     例;  incer like:news:1001 有人喜歡就加一
    decr key, --      設置自減
    incrby key xx,    設置每次加幾個
    decrby key xx     設置每次減幾個
開發中合理的key名, 業務名:對象名:id:屬性
  1. hash 哈希
hset key field value    存入鍵值對(一個key 可存入多個key value分屢次存)
    hget key field          取出鍵值對 

    hdel key field          刪除摸個鍵值對屬性
    hlen key                查看能夠有多少屬性
    hmget key field         批量獲取key的多個屬性
    hmset key field value   批量設置key的多個屬性的鍵值對
    hexists key field       判斷key的屬性是否存在
    hkeys key               列出這個key 全部屬性的名 
    hvals key               取出這個key 對應全部的屬性的值
    hgetall key             列出這個key的全部屬性和值
  1. list 列表

    存儲多個有序的字符串

    rpush key value ...     右邊插入元素           
     lpush key value ...     左邊插入元素
     lrange key start end    取出數據 +開始(0)和結束(?)       
     lpop key 左側pop        從數組中把左側pop彈出
     lrem key count value        刪除 +key  +count數量的  +value
  2. set 集合

    不容許有重複元素.

    同時處理多個集合的交集/並集/差集

    sadd key element ...   添加數據      
     exists key              是否出現  
     srem key element ... 刪除元素
     scard key       元素個數
     sismember key element 判斷是否在集合中
     smembers key  列出全部元素
  3. zset 有序集合
zadd key score member [score member...]   添加(可兩個一塊兒添加 
    zcard key           查看元素數量               
    zscore key member       查看分數
    zrem key member         移除
    zincrby key score member   指定key 元素 增加   
    zrange   scores  +count  +count  +witnscores 按key 排序後的數量 +witnscores後面會跟分數
相關文章
相關標籤/搜索