• redis基础知识


    redis:

      一个开源的基于内存的轻量级键值数据库(单线程),数据类型string,list,hash,set,zset,hyperloglog。

    通信过程:

      1、客户端向服务器发送一个命令;

      2、服务器接受该命令并将其放入执行队列(redis是单线程的执行模型);

      3、命令被执行;

      4、服务器将命令的执行结果返回给客户端。

    位图:

      由0和1组成的字符串string。0000100010000010,特定情况下可以节省占用内存。

      可以使用SETBIT、GETBIT命令来处理。

    键过期:

      Keys的过期时间使用Unix时间戳存储,即使实例不可用,当前时间戳也不会停止。

      主动过期:redis会每秒10次利用一个基于概率的算法进行主动删除,随机选取20个keys,删除所有已过期的keys,如果expired keys超过25%,继续选取20个keys。

      被动过期:当客户端访问已过期的key时,redis会立即将它删除。

      RDB:执行SAVE或BGSAVE时,过期键不会被保存在rdb文件中。

      AOF:当key过期但未删除,会被正常记录到aof文件中,当过期key被释放,DEL也会被同步到aof文件中;执行 BGREWRITEAOF时 ,数据库键中过期的键不会被记录到aof文件中。

      复制:为了保持一致性,当key被过期时,DEL将会随着AOF文字整合到所有slaves。slaves连接到master不会独立过期keys,当slave被选为master时能够独立地过期key,然后成为master。

    管道:

      在通信过程中的第2、3步是取决于redis服务器,第1、4步耗费的时间完全取决于服务器与客户端之间的网络延时;我们可以一次传输多个命令,用来减少服务端与客户端的通信过程;

    cat pipeline.txt
    # 将命令写入一个文件中
    set mykey myvalue
    sadd myset value1 value2
    lpush mylist value1 value2 value3
    get mykey
    scard myset
    

      文件中的每一行必须以 结束,可以使用命令unix2dos实现,需要安装dos2unix工具。

    unix2dos pipeline.txt
    # 格式处理
    cat pipeline.txt | ./redis-cli --pipe
    # 通过管道发送命令
    

    事务:

  • 相关阅读:
    P4890 Never·island
    P2617 Dynamic Rankings
    P3243 [HNOI2015]菜肴制作
    P4172 [WC2006]水管局长
    P4219 [BJOI2014]大融合
    P5241 序列
    P1501 [国家集训队]Tree II
    无法读取用户配置文件,系统自动建立Temp临时用户
    组件服务 控制台打不开
    打印服务器 功能地址保护错误
  • 原文地址:https://www.cnblogs.com/houyongchong/p/10374372.html
Copyright © 2020-2023  润新知