亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁/技術文章
文章詳情頁

mysql - 在一個多人共享的文件夾內, 創建文件夾/文件, 名字重復加數字后綴有沒有好的算法

瀏覽:88日期:2022-06-13 17:28:22

問題描述

問題解答

回答1:

使用Redis的Bitmap很適合解決這個問題,以“照片”為例

'照片'為key建立bitmap,值為1的bit代表已經使用(也不用建立,直接查詢就可以)

查找最左為0的bit的索引:bitpos '照片' 0

找到的索引就是最小的數字空位

注意:如果多服務器、多線程并發,則可以考慮使用Redis實現的分布式鎖,又或者使用watch命令偽代碼如下

if (’OK’.equals(redis.setnx('照片.lock')) { pos = redis.bitpos('照片', 0); redis.setbit('照片', pos, 1); return pos;}回答2:

hash表以文件名做key,自從生成一個[1..MaxNum]的有序List,MaxNum取一個你認為合理的數字。同步hash表。每次創建文件時查詢hash表有沒有該key,有就list.pop第一值。每次刪文件時,把文件()里的數字push回listhash表控制大小,超的數據可以存儲在文件系統【數據庫等】,每次查詢hash找不到數據時,需要去文件系統查找調用。類似內存分頁緩存機制。

回答3:

import osdef make_dir(filename,i=1): fullname = ’%s (%s)’ % (filename,i) if not os.path.exists(filename):os.mkdir(filename)return filename if os.path.exists(fullname):i += 1return make_dir(filename,i) else:os.mkdir(fullname)return fullnamefor i in range(3): print(make_dir(’照片’))回答4:

最簡單的一種想法就是維護兩組數據偽代碼

removeNameArray = {};NameArrayLen = 0;if(removeNameArray.length>0){ name = removeNameArray.pop();}else{ name = name+(NameArrayLen++);}

主站蜘蛛池模板: 免费看黄在线看 | 午夜爱爱毛片xxxx视频免费看 | 欧美日本不卡 | 国产精品久久做爰 | aa级毛片毛片免费观看久 | 艾小青亚洲专区在线播放 | 国产精品综合一区二区 | 91国内精品久久久久怡红院 | 三区在线观看 | 欧美毛片| 1000部啪啪未满十八勿入中国 | 国产爽妇网 | 日韩毛片在线观看 | 久久天天躁狠狠躁夜夜中文字幕 | 91网在线观看 | 理论片 国产台湾在线 | 91久久精品午夜一区二区 | 国产呦系列 欧美呦 日韩呦 | 日本在线不卡免费视频一区 | 国产a级三级三级三级 | 亚洲免费区| 手机在线观看黄色网址 | 国产精品视频公开费视频 | 国产在线高清一级毛片 | 免费高清欧美大片在线观看 | 国产精品成人观看视频国产奇米 | a毛片免费视频 | 亚洲爱色| 国产真实伦在线观看 | 亚洲综合专区 | 尤物精品视频在线观看 | 成人区视频爽爽爽爽爽 | 国产精品亚洲国产 | 中国淫片| 亚洲在线一区二区 | 黄色毛片小视频 | 久久精品是免费100 久久精品首页 | 亚洲第一页国产 | 国产乱理论片在线观看理论 | 国产精品密蕾丝视频 | 国产在线播放成人免费 |