zoukankan      html  css  js  c++  java
  • 创建16x16二级hash目录

    Hash目录是一种优化文件存储性能的方法。无论是Windows还是Linux,无论是NTFS还是ext4,每个目录下所能容纳的项目数是有限的。并不是不能保存,而是当项目数量过大的时候,会降低文件索引速度,所以权衡一个目录下应该保存多少文件是很必要的。保存得多了会影响性能,保存得少了会造成目录太多和空间浪费。所以当保存大批文件的时候,需要有一种算法能将文件比较均匀地“打散”在不同的子目录下以提高每一级的索引速度,这种算法就是 Hash。通常用的MD5、sha1等都可以用来做Hash目录,我的mSession里也同样使用了MD5,取得sessionID的第一位和第九位,这就构成了两级Hash路径,也就是说,系统把所有的Session文件分散到了16×16=256个子目录下。假设Linux每个目录下保存1000个文件可以获得最好的空间性能比,那么系统在理想情况下可以同时有256000个session文件在被使用。

    #!/usr/bin/env python
    # coding=utf-8
    
    import os
    import sys
    
    mlist = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
    path = sys.argv[1:] or './'
    if type(path) is list and len(path) == 1: 
        path = path[0]
    elif type(path) is list and len(path) !=1:
        sys.stderr.write('  Usage: %s [path]
    ' % sys.argv[0])
        sys.exit(1)
    if not os.path.exists(path):
        os.makedirs(path)
    
    for level1 in mlist:
        if not os.path.exists('%s/%s' % (path, level1)):
            os.mkdir('%s/%s' % (path, level1))
        for level2 in mlist:
            if not os.path.exists('%s/%s/%s' % (path, level1, level2)):
                os.mkdir('%s/%s/%s' % (path, level1, level2))
  • 相关阅读:
    sharepoint JQ获取List列表的值
    微信修改域名回掉
    input设置只读
    MVC-AJAX-JSON
    sharepoint添加子网站
    sharepoint打开解决方案库
    前台获取参数值
    SQL查看表结构以及表说明
    JQ获取对象属性值
    bootstrap table样式
  • 原文地址:https://www.cnblogs.com/xiaoming279/p/6222003.html
Copyright © 2011-2022 走看看