redis 命令总结

String 命令

  1. incr key 将key 值加一 用作计数器
  2. decr key 将key值 减一 用作计数器
  3. setex key second value 设置key的值并设置时间 以秒为单位
  4. setnx key value 如果key的值存在则不设置 不存在才设置
  5. getset key value 设置新的值把旧的值返回
  6. strlen key 返回key 的长度
  7. append key value 在key后面追加字符
  8. incrby key x 每次增加x 计数器
  9. decrby key x 每次减少 x 计数器
  10. getrange key start end 截取字符串
  11. setrange key start end 设置keystart - end的值
  12. mset 设置 多个key 值
  13. mget 获取多个key值
  14. msetnx 设置多个key 只要有一个存在 则不成功

hash 哈希类型

1.hset key id 100

2.hget key id

3.hmset 设置多个字段 eg:hmset k1 id 100 name “name”

4.hmget 获取多个定域的值

5.hgetall 获取哈希表key 中所以的域和值

flushdb 清空数据

6.hdel 删除 指定域的值

7.hkeys key 获取所有域

8.hvals 获取所有域的值

9.type key 查看数据类型

10.hlen key 获取域的个数

11hexists key id 查看id域是否存在 0不存在 1存在

12hincrby key id 5 给id域 加5

13hsetnx key age 20 如果域不存在则设置成功 不然设置不成功 0 不成功 1 成功

list 列表

  1. lpush key 1 2 3 4 5 6 将一个或多个值插入表头
  2. rpush key 4 5 6 将一个或多个插入到表尾
  3. lrange key 0 -1获取列表key中指定取域内的元素 0代表列表第一个元素 -1代表最后一个元素 -2 代表倒数第二个
  4. lpop key 将左边第一个元素去掉
  5. rpop key 将右边第一个元素去掉
  6. lindex key 3 获取key 中第N个元素
  7. llen key 获取列表长度

set

  1. sadd key 1 2 3 将一个多个加入
  2. smenbers key 获取key 所有成员
  3. sismember key 3 判断3是不是里面的元素
  4. srem key 5 删除一个或多个成员
  5. scard 获取集合里面的元素个数

zset

  1. zadd key 100 1 90 2 80 3 将一个多个加入 并设置分值
  2. zrem key key 1 删除指定成员
  3. zcard 获取set元素个数
  4. zrank key 1 从小到大排列 下标
  5. zrevrank key 从大到小排列下标
  6. zrange key 获取值从小到大 排序

redis 发布订阅

消息队列三要素

  1. 生产者 发消息的
  2. 消费者 收消息的
  3. 消费服务(redis)

订阅者 和发布者的命令

redis 事务

基本步骤

  1. MULTI 告诉redis 要执行事务
  2. 执行很多命令 加入队列
  3. EXEC 提交事务
  4. discard 放弃事务

异常情况 略

语法出错 就会回滚

例外情况

部分支持事务

语法没错 但是比如字符串自增 事务就不会回滚

复杂情况

悲观锁 :每次拿数据都会将数据锁上 如果别的线程来拿则会阻塞直到线程拿到锁、

乐观锁:乐观 每次拿数据不会上锁 别的线程也可以拿 但是更新数据的时候 就会根据版本号机制 去判断这个期间别的线程有没有更新这条

版本号机制 在数据库表中有个字段 version 每次去更新数据的时候 version会加一 所以乐观锁在就根据version字段 是否大于数据库版本号version字段 如果大于就可以更新 否则就更新失败

redis watch key 监听某个Key 如果给其他线程改过 则事务提交失败 实现乐观锁

redis 持久化

RDB 快照持久化

指定时间间隔内将内存的数据集快照写入磁盘中 , 恢复的时候将快照文件直接读到内存中。

实现 在redis.conf 文件上 实现配置即可

AOF

每次收到一天改变数据命令时候,他会把该命令写到AOf文件中 当重启redis 的时候就会去执行aof 文件回复数据

实现 在配置文件中appendOnly 改为yes 开启AOF

appendfsync :配置aof文件写命令的策略

  1. no 主动进行同步 而是30秒进行一次 比较快当不安全
  2. always 每次执行都会执行同步 慢一些但是比较安全
  3. everysec 每秒都会执行一次同步操作 比较平衡

auto-aof-rewrite-percentafe: 当aof的文件大小大于上次重写aof文件大小的百分之多少时候 会重写 重写就是把把一些重复的命令去掉

auto-aof-rewrite-min-size 允许重写的最小aof文件大小

redis优先加载aof文件

redis 主从复制 master/slave

主从复杂就是有多台redis 服务器 在配置文件中指定几台redis服务器之间的关系 主服务器负责的是写入数据以及将数据同步到从机器,这种模式叫做主从复制 并且默认master 用于写 ,slave用于读, 先slave写数据会导致错误

实现

修改配置文件 ,服务器启动的是会读配置文件自动成为

info replication 查看角色 master /slave

容灾处理

1.冷处理

当主服务器出现故障的时候 需要手动的将slave中的一个提升为master 剩下的slave 挂至新的master

命令 slaveof no one 将一台skave服务器 提升为master

slave of ip port 将slave 挂至到新的master上

旧的master恢复后 也变为slave 挂至新的master

redis 高可用sentine 哨兵

作用 redis集群 单台服务器故障 实现故障的自动转移 提升一台slave 为master

发布了78 篇原创文章 · 获赞 5 · 访问量 7347

猜你喜欢

转载自blog.csdn.net/weixin_41930050/article/details/104786770