Redis 基础命令与特性详解

全面介绍Redis的基本命令和核心特性,包括各种数据类型的操作方法、事务处理、持久化机制以及主从复制配置。

redis

命令

string
  • set key name
  • del key
  • ttl key
  • get key
  • exists key
  • keys *me
    • keys *
  • flushall 删除全部
  • ttl key
    • -1不过期
    • -2已经过期
    • 整数 剩余时间
  • expire key 10 设置过期时间10s
  • setex key 5 value 增加一个key并设置时间
  • setnx key value 如果key已经存在不做任何操作
list 可重复 有顺序
  • lpush key elements 左push element
  • rpush key elements 右push element
  • lpop num 从左pop num个
  • rpop num 从右pop num个
  • llen letter 查看有多少元素
  • lrange key start end
    • end如果是-1的话就是全部内容
  • ltrim key start end
    • 只保留start-end之间的元素
set 集合 不能重复 无序
  • sadd key ele 设置键值对
  • smembers key查看所有member
  • sismember key member
  • srem key member 删除成员
SortedSet 有序集合
  • zadd key 600 清华 500 复旦
  • zrange key 0 -1 (withscores) 显示数字与否
  • zscore key member 显示数字
  • zrank key member 查看排名 从小到大
  • zrevrank key member 从大到小
hash键值对
  • hset key field value
  • hget key field 得到值
  • hgetall key 得到所有键值对, 成对出现的
  • hdel key field 删除键值对
  • hexists key field 是否存在键值对
  • hkeys key 获取所有键
  • hlen key 有多少个键值对
发布订阅
  • subscribe geekhour 订阅
    • subscribe channel [channel …]
  • publish geekhour redis 发布
stream 轻量的消息队列
  • xadd key * field value
    • xadd key threshold field value
    • *是自动生成消息id
  • xlen key 查看有多少消息
  • xrange key start end 显示所有消息
    • xrange key - +显示所有内容
  • xdel key threshold s
  • xtrim key start end
    • xtrim key maxlen 0 删除所有消息
  • xread count 2 block 1000 streams key 0
    • 读两个消息
    • 如果没有消息就阻塞1000ms
    • 0表示从头开始读
    • 可以重复读
    • 0变$的话 就读取最新的消息
  • xgroup create key group id 创建组
  • xgroup createconsumer key group membername添加组成员
  • xreadgroup group groupname consumer1 count 2 block 3000 streams key >
geospatial 空间地理
  • geoadd key longitude latitude member
    • 经纬度 member
  • geopos key member member(km)
    • 获取两地距离
  • geosearch key frommember member byradius 300 km
    • 翻译附近城市, 半径300km
  • bybox返回矩形范围
hyperloglog 基数计算, 会有一定误差, 查看有多少不同的
  • pfadd key
  • pfcount
bitmap 位图
  • setbit key offset value
  • getbit key 0 获取偏移量值
  • set key “\xF0” 设置11110000
  • bitcount key 统计有多少1
  • bitpos key 0 [start end]第一个出现0的位置是多少
    • 位置从0开始算
    • 从范围开始查找
事务
  • multi
  • 各种操作会被放到队列中, 被缓存起来, 并且某一条语句执行失败, 不会影响其他操作
  • 事务执行过程中, 其他操作不会被插入事务当中
  • exec
持久化 保证内存数据在断电后不消失
  • rdb redis database
    • save 可以保存快照
      • 会生成dump.rdb
    • save中会处在阻塞中
    • bgsave可以fork()一个来保存到磁盘
  • aof append only file
    • appendonly改成yes
replication 主从复制
  • 只能从主节点到从节点

  • 主节点负责写, 从负责读

  • sentinel 哨兵模式, 负载均衡, 自动故障转移

    • sentinel.conf

      1
      2
      
      entinel monitor master 主节点的ip地址和端口号 用空格分隔 1
      只有一个哨兵节点同意就可以转移
      
    • redis-sentinel sentinel.conf 启动哨兵模式

使用 Hugo 构建
主题 StackJimmy 设计