zoukankan      html  css  js  c++  java
  • 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
    # 通过管道发送命令
    

    事务:

  • 相关阅读:
    HDU 3401 Trade
    POJ 1151 Atlantis
    HDU 3415 Max Sum of MaxKsubsequence
    HDU 4234 Moving Points
    HDU 4258 Covered Walkway
    HDU 4391 Paint The Wall
    HDU 1199 Color the Ball
    HDU 4374 One hundred layer
    HDU 3507 Print Article
    GCC特性之__init修饰解析 kasalyn的专栏 博客频道 CSDN.NET
  • 原文地址:https://www.cnblogs.com/houyongchong/p/10374372.html
Copyright © 2011-2022 走看看