• Redis优化总结


    # 注意在redis.conf中的小聚合数据类型的特殊编码设置(http://carlosfu.iteye.com/blog/2254572)
    ```
    hash-max-zipmap-entries 64 (hash-max-ziplist-entries for Redis >= 2.6)
    hash-max-zipmap-value 512 (hash-max-ziplist-value for Redis >= 2.6)
    list-max-ziplist-entries 512
    list-max-ziplist-value 64
    zset-max-ziplist-entries 128
    zset-max-ziplist-value 64
    set-max-intset-entries 512
    ```
    # 使用32位实例将内存受限在4G内,不过他们的RDB和AOF文件是兼容在32位和64位下去切换使用的。

    # 使用bit位级别操作和byte字节级别操作来减少不必要的内存使用
    >* bit位级别操作:GETRANGE, SETRANGE, GETBIT and SETBIT
    >* byte字节级别操作:GETRANGE and SETRANGE

    # 尽可能地使用hashes哈希,因为小Hashes会被编码成一个非常小的空间。
    # 使用哈希来在Redis的顶部在普通key-value存储上来抽象内存使用效率
    # 关于内存分配:
    如果maxmemory没有设置的Redis会继续分配内存,因为它认为合适的,因此它可以(逐渐)吃了你的全部可用内存。因此,通常建议配置一些限制。您可能还需要设置maxmemory策略,以noeviction(这不是在一些旧版本的Redis的默认值)。
    这使得Redis的返回内存不足的错误写命令,如果当它到达了极限 - 这反过来可能会导致应用程序错误,但不会导致因为内存饥饿而整机死亡。
    ```
    另外redis的6种过期策略,redis中的默认的过期策略是volatile-lru,设置方式
      config set maxmemory-policy volatile-lru
      maxmemory-policy 六种方式
      volatile-lru:只对设置了过期时间的key进行LRU(默认值)
      allkeys-lru : 是从所有key里 删除 不经常使用的key
      volatile-random:随机删除即将过期key
      allkeys-random:随机删除
      volatile-ttl : 删除即将过期的
      noeviction : 永不过期,返回错误
      maxmemory-samples 3 是说每次进行淘汰的时候 会随机抽取3个key 从里面淘汰最不经常使用的(默认选项)
    ```
    # 数据尽量压缩
    # 尽量使用短的key
    # 使用Hashes值存储而不带额外的数据元

  • 相关阅读:
    mysql修改数据表名
    HDU 5742 It's All In The Mind (贪心)
    HDU 5752 Sqrt Bo (数论)
    HDU 5753 Permutation Bo (推导 or 打表找规律)
    HDU 5762 Teacher Bo (暴力)
    HDU 5754 Life Winner Bo (博弈)
    CodeForces 455C Civilization (并查集+树的直径)
    CodeForces 455B A Lot of Games (博弈论)
    CodeForces 455A Boredom (DP)
    HDU 4861 Couple doubi (数论 or 打表找规律)
  • 原文地址:https://www.cnblogs.com/sunxucool/p/5632340.html
Copyright © 2020-2023  润新知