zoukankan      html  css  js  c++  java
  • Redis开发规范

    key设计

    最大key为512MB

    可读性和可管理性 : 以业务(或者数据库名)为前缀(防止key冲突),用冒号分割,比如user:class:1

    简洁性 : 保证语义的前提下,控制key的长度

    不要包含特殊字符 : 比如空格,换行,单双引号及其他转义字符

    value设计

    127.0.0.1:6379> incr num
    (integer) 1
    127.0.0.1:6379> object encoding num
    "int"
    127.0.0.1:6379> set a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    #redis3.xx 是33
    OK
    127.0.0.1:6379> strlen a
    (integer) 43
    127.0.0.1:6379> object encoding a
    "embstr"
    127.0.0.1:6379> set a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    OK
    127.0.0.1:6379> strlen a
    (integer) 44
    127.0.0.1:6379> object encoding a
    "embstr"

    bigkey  : string控制在10KB,hash、list、set、zset元素个数不要超过5000

    bigkey发现

    [root@localhost ~]# /usr/local/redis/bin/redis-cli --bigkeys
    

    Scanning the entire keyspace to find biggest keys as well as

    average sizes per key type. You can use -i 0.1 to sleep 0.1 sec

    per 100 SCAN commands (not usually needed).

    [00.00%] Biggest string found so far 'k3' with 2 bytes

    -------- summary -------

    Sampled 5 keys in the keyspace!
    Total key length
    in bytes is 11 (avg len 2.20)

    Biggest string found 'k3' has 2 bytes

    0 lists with 0 items (00.00% of keys, avg size 0.00)
    0 hashs with 0 fields (00.00% of keys, avg size 0.00)
    5 strings with 9 bytes (100.00% of keys, avg size 1.80)
    0 streams with 0 entries (00.00% of keys, avg size 0.00)
    0 sets with 0 members (00.00% of keys, avg size 0.00)
    0 zsets with 0 members (00.00% of keys, avg size 0.00)

    删除bigkey

    UNLINK key [key ...] : 该命令和DEL十分相似:删除指定的key(s),若key不存在则该key被跳过。但是,相比DEL会产生阻塞,该命令会在另一个线程中回收内存,因此它是非阻塞的。 这也是该命令名字的由来:仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作

    redis> SET key1 "Hello"
    "OK"
    redis> SET key2 "World"
    "OK"
    redis> UNLINK key1 key2 key3
    (integer) 2
    redis>

    选择合理数据结构 

    需求 : picId= userId (100万)

    1.   全部string : set pic1 user1

    2.   一个hash : hset allPics pic1 user1 pic2 user2

    3.  若干个小hash : hset picId/100 picId%100 userId

  • 相关阅读:
    在提交订单时,为了让用户体验更好,一般改成正在提交,后面加三个点,为了让页面更生动,可以把点点改成动态
    js日期格式化
    h5嵌入视频遇到的bug及总结---转载
    字符串中删除多个特定的字符串
    在苹果手机上input有内阴影怎么去除
    把彩色图片置灰色图片
    springmvc入门程序
    Linux常用命令大全
    MyBatis逆向工程详细教程
    MyBatis整合Spring详细教程
  • 原文地址:https://www.cnblogs.com/yhq-qhh/p/11123713.html
Copyright © 2011-2022 走看看