国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

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

瀏覽:92日期: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++);}

主站蜘蛛池模板: 亚洲免费精品 | 免费观看欧美一区二区三区 | 午夜精品一区二区三区在线观看 | 国产成人一区二区三中文 | 久青草免费视频手机在线观看 | 亚洲欧美精品一区 | 亚洲欧美日韩一级特黄在线 | 欧美黑粗特黄午夜大片 | 久久综合精品国产一区二区三区无 | 久久美女精品国产精品亚洲 | 一区二区欧美视频 | 欧美日韩国产va另类 | 亚洲国产精品二区久久 | 精品国产香蕉在线播出 | 91久久精品国产91久久性色也 | 二区在线观看 | 国产视频精品久久 | 成 人 黄 色 激 情视频网站 | 男女扒开双腿猛进入爽爽视频 | 色综合色狠狠天天久久婷婷基地 | 日日干日日操日日射 | 久久合| 毛片一区二区三区 | 日本免费网站视频www区 | 成人免费手机在线看网站 | 草草视频在线观看最新 | 日本精品1在线区 | 亚州成人 | 久久久亚洲国产精品主播 | 日韩欧美一区二区三区在线观看 | 成人影院欧美大片免费看 | 99久久精品久久久久久婷婷 | 亚洲成av人在线视 | 欧美怡红院在线观看 | 欧美精品一区二区三区免费 | 午夜在线亚洲男人午在线 | 国产一区三区二区中文在线 | 美女张开腿让男人桶爽动漫视频 | 一区二区三区亚洲 | 日本在线观看www免费 | 国产亚洲人成网站在线观看 |