美文网首页
redis基本指令

redis基本指令

作者: 灿烂的GL | 来源:发表于2021-04-06 16:34 被阅读0次

    以下作为学习记录仅供参考

    redis基本理论

    1、作用:

    • 持久化存储(rdb/aof)

    • 高速缓存

    • 发布订阅系统
    • 地图分析
    • 计时器...
      2、单线程
      CPU不是Redis的瓶颈,Redis的瓶颈是根据机器的内存和网络带宽。
      Redis将所有数据放入内存中,而多线程来说会有CPU上下文切换,所以在内存情况下是最佳方案
      3、

    docker安装部署

    拉取镜像

    docker pull redis:latest

    启动

    docker run -itd --name redis-test -p 6379:6379 redis

    进入Redis

    docker exec -it redis-test /bin/bash


    基本语句

    flushdb--->删除所有数据
    FLUSHALL--->清空所有数据库
    select 1--->切换到数据库1,默认是0号数据库
    keys *--->查看所有key
    exists key--->是否存在key
    move key--->移除key
    EXPIRE key time--->设置过期时间
    ttl key--->查看当前key的剩余时间
    type key--->查看key的类型

    PS:命令不缺分大小写,但是key区分

    1、string类型
    追加字符串(如果key不存在相当于新建)

    append key "hello"

    字符串长度

    strlen key

    加1

    incr key

    按步长加减

    incrby key 长度
    decrby key 长度

    获取指定长度字符串

    getrange key 0 -1(所有)
    getrange key 0 3

    批量设置key

    mset key1 value1 key2 value 2
    mget key1 key2

    先获取再设置(组合命令)

    getset key 值

    2、list
    所有的list操作以l开头,最先放入的元素在列表的右侧
    将一个或多个值插入列表(左边放)

    lpush key

    右边放

    rpush key

    获取值(从后往前)

    lrange key 范围

    长度

    llen key

    移除

    lrem key 个数 值

    将当前最后一个元素移到另一个list里

    rpoplpush key key1

    指定下标复制值(如果key不存在则会报错)

    lset key 下表 值

    在已存在值后/前添加值

    linsert key before/after 已存在值 插入值

    3、set
    添加元素

    sadd key 值

    查看数据

    smember key

    弹出数据

    spop key

    4、hash
    添加元素

    hset key 哈希key value

    获取元素

    hget key 哈希key value

    删除哈希值

    hdel key 哈希key

    大小

    hlen key

    获取所有的key

    hkeys key

    获取所有的值

    hvals key

    自增或自减

    hincrby/hdecrby key 哈希key 值

    5、redis事务
    Redis 事务可以一次执行多个命令, 它先以 MULTI 开始一个事务, 然后将多个命令入队到事务中, 最后由 EXEC 命令触发事务

    multi
    ....操作
    exec(才开始执行)

    6、redis 持久化RDB
    原理:父进程正常处理客户端请求,fork一个子进程来做持久化快照保存。

    触发机制
    1、save 规则满足情况下会触发rdb规则
    2、执行flushall命令会触发rdb规则
    3、退出Redis ,也会产生rdb文件

    配置文件修改

    dbfilename dump.rdb (rdb文件的名称 )
    save 900 1 (900秒(15分钟)内至少1个key值改变(则进行数据库保存--持久化)

    只要把dump文件放到Redis的启动目录下,下次启动后悔自动扫描恢复其中数据

    优点:
    1、适合大规模数据恢复
    2、对数据完整性不高
    缺点
    1、需要一定时间间隔进行修改,如果Redis宕机,最后一次数据无法保存
    2、会占用内存空间

    在Redis里的配置默认是rdb

    7、redis 持久化AOF
    所有命令都记录(只记写操作),操作是追加文件,默认生成.aof文件,如果aof文件有问题会导致Redis无法启动,可以通过“redis-check-aof”进行修改aof文件

    redis-check-aof --fix appendonly.aof
    redis-server ./redis.conf(重启Redis)

    配置文件修改(重启Redis生效)

    appendonly yes

    优点:
    1、文件完整性更好
    缺点
    2、aof相当于rdb大很多
    3、aof里都是写操作

    8、redis 发布订阅
    使用场景:
    1、实时聊天
    2、实时消息系统
    3、订阅关注系统都可以

    订阅端

    subscrible channel

    发送端

    publish channel 消息

    9、redis 主从复制
    好处:主从复制,读写分离,80%情况下都进行读的操作,可以把写放在master上,其他读的操作在slave上,减缓服务器压力(低配:一主二从),单台Redis最大使用内存不应该超过20g

    查看当前库信息

    info replication

    步骤一:
    环境单机配置:
    如果是本机上可以复制多个配置文件(以端口命名)

    步骤二:
    修改对应配置文件(如:79/80/81)

    port 不同port
    pidfile /var/run/redis_不同port.pid
    logfile "不同port.log"
    dbfilename dump不同port.rdb

    步骤三:
    重启Redis,启动不同config

    步骤四:
    默认情况下每个Redis都是主节点,一般情况下只在从机上配置就可以了,
    从机上操作

    slaveof 127.0.0.1 6379 (认6379为主机)

    主机才能写,从机只能读,如果主机断了,就没有写操作了,如果主机恢复了,从机依然可连主机,如果从机断了(命令号配置的主从),再次启动就会脱离了主从配置,如果在将该机器设置成从机,主机会对从机进行全量复制

    如果主机没有了可以让从机变成主机

    slaveof no one(如果主机修复了,也脱离了主从配置)

    哨兵模式
    哨兵是一个独立的进程,哨兵通过发送命令,等待Redis服务器响应,从而监控运行多个Redis实例

    步骤一:配置哨兵文件sentinel.conf

    sentinel monitor myredis 127.0.0.1 6379 1
    被监控的名称(6379)数字1代表master挂了投票竞选slave

    重新启动(如果主机宕机了,会在从机中选出一个为主机,如果主机在回来默认变成从机)


    参考链接

    1、安装部署
    2、redis基本命令
    3、Redis锁
    4、redis配置文件
    5、redis视频--推荐

    相关文章

      网友评论

          本文标题:redis基本指令

          本文链接:https://www.haomeiwen.com/subject/dmdgdhtx.html