Redis基本用法



  • 简介

    Redis 是一个内存型的数据库,支持将数据持久化到磁盘上。

    数据类型

    • string:字符串
    • hash:哈希
    • list:列表
    • set:集合
    • sorted set:有序集合

    常用命令

    string

    • 设置 key 以及对应的 value。
    127.0.0.1:6379> SET name SwiftMic
    OK
    
    • 查询某个 key(比如:name)
    127.0.0.1:6379> GET name
    "SwiftMic"
    

    hash

    • 设置 hash 中的一个 key - value。
    127.0.0.1:6379> HSET country cn chinese
    (integer) 1
    
    • 查询 hash 中的 某一个 key 对应的 value。
    127.0.0.1:6379> HGET country cn
    "chinese"
    
    • 批量设置 hash 中的多个 key - value。
    127.0.0.1:6379> HMSET country JP Japan KR Korea
    OK
    
    • 查询 hash 表 key 中,所有的 filed 和 value。
    127.0.0.1:6379> HGETALL country
    1) "cn"
    2) "chinese"
    3) "JP"
    4) "Japan"
    5) "KR"
    6) "Korea"
    

    list

    • 往一个 list 表头插入元素。
    命令:
    LRANGE key start stop
    
    参数:
    start: 起始位置。
    stop:结束位置。
    
    注:
    start=0, stop=-1,表示查询全部元素。
    
    127.0.0.1:6379> LPUSH color red
    (integer) 1
    127.0.0.1:6379> LPUSH color black
    (integer) 2
    
    • 查询一个 list。
    127.0.0.1:6379> LRANGE color 0 1
    1) "black"
    2) "red"
    
    • 获取 list 长度。
    127.0.0.1:6379> LLEN color
    (integer) 2
    
    • 往一个 list 表尾插入元素。
    127.0.0.1:6379> RPUSH color yellow
    (integer) 3
    127.0.0.1:6379> LRANGE color 0 -1
    1) "black"
    2) "red"
    3) "yellow"
    
    • 通过索引设置 list 元素的值。
    127.0.0.1:6379> LSET color 1 red2
    OK
    127.0.0.1:6379> LRANGE color 0 -1
    1) "black"
    2) "red2"
    3) "yellow"
    
    • 移除第一个元素
    127.0.0.1:6379> LPOP color
    "black"
    127.0.0.1:6379> LRANGE color 0 -1
    1) "red2"
    2) "yellow"
    
    • 移除最后一个元素
    127.0.0.1:6379> RPOP color
    "yellow"
    127.0.0.1:6379> LRANGE color 0 -1
    1) "red2"
    

    set

    Redis 的 set 是 string 类型的无序集合。

    • 添加一个元素
    127.0.0.1:6379> SADD animal dog
    (integer) 1
    127.0.0.1:6379> SADD animal cat
    (integer) 1
    127.0.0.1:6379> SADD animal tiger
    (integer) 1
    
    • 查询 set 内的所有成员
    127.0.0.1:6379> SMEMBERS animal
    1) "tiger"
    2) "cat"
    3) "dog"
    
    • 查询 set 内的成员数
    127.0.0.1:6379> SCARD animal
    (integer) 3
    
    • 判断 member 元素是否是集合 key 的成员
    127.0.0.1:6379> SISMEMBER animal dog
    (integer) 1
    127.0.0.1:6379> SISMEMBER animal dog1
    (integer) 0
    
    • 移除集合中的一个成员
    127.0.0.1:6379> SREM animal cat
    (integer) 1
    127.0.0.1:6379> SMEMBERS animal
    1) "tiger"
    2) "dog"
    

    sorted set

    sorted set 是一个有序集合,每个元素都会关联一个 double 类型的分数。通过该分数进行从小到大的排序。

    • 添加一个元素
    127.0.0.1:6379> ZADD language 1 Chinese
    (integer) 1
    127.0.0.1:6379> ZADD language 3 English
    (integer) 1
    127.0.0.1:6379> ZADD language 2 German
    (integer) 1
    
    • 查询集合内的所有成员(默认分数从低到高排序)
    127.0.0.1:6379> ZRANGE language 0 -1
    1) "Chinese"
    2) "German"
    3) "English"
    
    • 查询集合内的所有成员(带分数)
    127.0.0.1:6379> ZRANGE language 0 -1 WITHSCORES
    1) "Chinese"
    2) "1"
    3) "German"
    4) "2"
    5) "English"
    6) "3"
    
    • 查询集合内的所有成员(按分数从高到低排序)
    127.0.0.1:6379> ZREVRANGE language 0 -1
    1) "English"
    2) "German"
    3) "Chinese"
    
    • 查询集合内的所有成员(带分数,按分数从高到低排序)
    127.0.0.1:6379> ZREVRANGE language 0 -1 WITHSCORES
    1) "English"
    2) "3"
    3) "German"
    4) "2"
    5) "Chinese"
    6) "1"
    
    • 移除集合中的一个成员
    127.0.0.1:6379> ZREM language German
    (integer) 1
    127.0.0.1:6379> ZREVRANGE language 0 -1
    1) "English"
    2) "Chinese"
    

    发布订阅

    发布订阅是一种消息通信模式。发送者(pub)发送消息,订阅者(sub)接收消息。

    • 订阅一个事件
    127.0.0.1:6379> SUBSCRIBE myChat
    Reading messages... (press Ctrl-C to quit)
    1) "subscribe"
    2) "myChat"
    3) (integer) 1
    
    • 发布一个事件(新启动一个Redis客户端)
    127.0.0.1:6379> PUBLISH myChat "Hello World"
    (integer) 1
    

    此时,订阅者将接收到对应消息。

    1) "message"
    2) "myChat"
    3) "Hello World"
    

Log in to reply