當前位置:首頁 » 服務存儲 » 輕量本地數據存儲
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

輕量本地數據存儲

發布時間: 2022-08-05 23:43:31

⑴ 什麼是輕量數據

具體解釋一

⑵ jquery 本地存儲大量數據,並支持後續操作的方法!

你的數據有多大?幾千行的話 gzip 一下也不會花超過幾秒(大概不需要),不需要甚麼特別的處理。再大的話就視乎實際數量和所需的處理方式,簡單的 localstorage 復雜的自己看看是用自己的方法處理(一般較快較省記憶)還是去用 js 實作的資料庫(一般較方便)。這也是個編程階段,自己多試試看不同的處理方法那才會有長進,別人給的意見再好都不是你自己的經驗。

⑶ 誰能給我解釋一下BIM輕量化是什麼而且我現在看到好多公司都在做BIM輕量化,有誰給我解釋一下嗎

哈嘍樓主,很榮幸可以有機會回答你這個問題。
介紹BIM輕量化之前,首先咱們必須先了解BIM是什麼?簡單來說,BIM的就是一個包含建築工程信息的三維模型,數據主要包含兩個方面:構件的幾何信息、專業屬性及狀態信息;非構件(如空間、運動行為)的狀態信息。
由此可見BIM模型涉及到數據、文件都是比較龐大的,傳統的BIM應用程序都基於桌面客戶端且對電腦配置要求高。伴隨著互聯網的發展,越來越多的用戶希望使用手機或者登陸瀏覽器即可瀏覽三維模型,因此為了更好地利用BIM 模型,BIM輕量化需求也應運而生。
一個BIM模型的輕量化,其目的是為了盡可能縮小BIM模型的體量,使其可以更加適宜web、移動端。在這個過程中,BIM模型實際經歷了兩階段處理過程:幾何轉換與渲染處理。
幾何信息主要指日常生活中可見的二維、三維模型,通過參數化方式描述單個構件的幾何信息可以對其輕量化。除此之外還可以通過三角面片、相似性演算法減少圖元等方式對模型進行幾何優化轉換。
渲染處理過程可使用八叉樹快速剔除不可見圖元,減少進入渲染區域的繪制對象,這部分技術在桌面端的三維顯示引擎已非常成熟。此外還可以使用多重LOD(Levels of Detail),加速單圖元渲染速度。
幾何轉換、渲染是BIM模型輕量化的核心技術,具有一定的技術門檻,要求開發者需要掌握一定的圖形技術。因此,現在市場上不斷涌現出各式各樣的BIM輕量化引擎。諸如廣聯達BIMFACE、葛蘭岱爾webglBIM輕量化引擎、autodesk forge、modelo等。
如上,希望對樓主有所幫助,感謝~~

⑷ Windows store app 數據存儲的幾種方法

在開發過程中,我們需要將某些數據保存下來,比如一些設置信息以及一些用戶主動去保存的數據。待用戶下次打開應用時候,再自動載入這些信息。下面將介紹windows8開發中如何存儲數據。
一.本地數據存儲
在wp中我們使用IsolatedStorageSettings進行本地數據存儲,在win8中也提供類似的方法進行存儲,我們使用ApplicationData.Current.LocalSettings。下面將通過實例進行描述:
在節目上添加姓名、年齡、性別三個控制項,代碼如下:
1 <Grid Background="{StaticResource }">
2 <StackPanel Margin="40,40,0,0">
3 <StackPanel Orientation="Horizontal" Height="80">
4 <TextBlock Text="姓名:" Style="{StaticResource BasicTextStyle}" FontSize="20" VerticalAlignment="Center"/>
5 <TextBox x:Name="txtName" Text="" FontSize="24" Width="200" Height="40"/>
6 </StackPanel>
7 <StackPanel Orientation="Horizontal" Height="80">
8 <TextBlock Text="年齡:" Style="{StaticResource BasicTextStyle}" FontSize="20" VerticalAlignment="Center"/>
9 <TextBox x:Name="txtAge" Text="" FontSize="24" Width="200" Height="40"/>
10 </StackPanel>
11 <StackPanel Orientation="Horizontal" Height="80">
12 <TextBlock Text="性別:" Style="{StaticResource BasicTextStyle}" FontSize="20" VerticalAlignment="Center"/>
13 <ComboBox x:Name="cbxSex" Height="40" Width="200" SelectedIndex="1">
14 <ComboBoxItem>男</ComboBoxItem>
15 <ComboBoxItem>女</ComboBoxItem>
16 </ComboBox>
17 </StackPanel>
18 <StackPanel Orientation="Horizontal">
19 <Button Content="保存" Width="100" Height="40" FontSize="16" Click="btnSave_Click"></Button>
20 <Button Margin="20,0,0,0" Content="讀取" Width="100" Height="40" FontSize="16" Click="btnRead_Click"></Button>
21 <Button Margin="20,0,0,0" Content="清空" Width="100" Height="40" FontSize="16" Click="btnClear_Click"></Button>
22 </StackPanel>
23 </StackPanel>
24 </Grid>
新建類AppDataHelper.cs,引用命名空間using Windows.Storage。我們將讀取和保存封裝成共通,方便調用。
保存數據:
1 /// <summary>
2 /// 保存數據
3 /// </summary>
4 /// <typeparam name="T">數據類型</typeparam>
5 /// <param name="key">鍵</param>
6 /// <param name="value">值</param>
7 public static void Save<T>(string key, T value)
8 {
9 ApplicationData.Current.LocalSettings.Values[key] = value;
10 }
讀取數據:
1 /// <summary>
2 /// 讀取數據
3 /// </summary>
4 /// <typeparam name="T">數據類型</typeparam>
5 /// <param name="key">鍵</param>
6 /// <returns>值</returns>
7 public static T Read<T>(string key)
8 {
9 if (ApplicationData.Current.LocalSettings.Values.ContainsKey(key))
10 {
11 return (T)ApplicationData.Current.LocalSettings.Values[key];
12 }
13 else
14 {
15 return default(T);
16 }
17 }
刪除數據:
1 /// <summary>
2 /// 移除數據
3 /// </summary>
4 /// <param name="key">鍵</param>
5 /// <returns>成功true/失敗false</returns>
6 public static bool Remove(string key)
7 {
8 return ApplicationData.Current.LocalSettings.Values.Remove(key);
9 }
我們只要在需要存儲或者讀取數據的地方進行調用,就可以了。
1 private void btnSave_Click(object sender, RoutedEventArgs e)
2 {
3 AppDataHelper.Save<string>("name", txtName.Text.Trim());
4 AppDataHelper.Save<int>("age", int.Parse(txtAge.Text.Trim())); 5 AppDataHelper.Save<int>("sex", cbxSex.SelectedIndex);
6 }
7 private void btnRead_Click(object sender, RoutedEventArgs e)
8 {
9 txtName.Text = AppDataHelper.Read<string>("name");
10 txtAge.Text = AppDataHelper.Read<int>("age").ToString();
11 cbxSex.SelectedIndex = AppDataHelper.Read<int>("sex");
12 }
那麼我們保存的數據保存到哪裡去了呢?我們應該如何找到他們,別急,我們下面開始找保持的數據。
打開C:\Users\\AppData\Local\Packages\ \Settings\settings.dat, user_name對應當前登錄的用戶名,packpage對應此應用的唯一標識,在Package.appxmanifest中我們可以找到它:


此文件為.dat後綴,我們需要用注冊表工具打開它,開始->運行(win+R鍵),輸入Regedit,在打開的窗口裡面選擇 HKEY_LOCAL_MACHINE,


然後選擇文件->載入配置單元,選擇settings.dat文件,打開填入項名稱,確定之後可以看到保存的數據會顯示在其中。




雙擊name,打開,我們可以看到存儲的數據值。


那麼我們是否能像wp那樣存儲一個對象到本地存儲呢,答案是否定的。win8中只能存儲一些簡單類型,如int、bool、string等
下面有一個Person對象:
1 [DataContract]
2 public class Person
3 {
4 [DataMember]
5 public string Name { get; set; }
6 [DataMember]
7 public int Age { get; set; }
8 [DataMember]
9 public int Sex { get; set; }
10 }
進行存儲:
1 Person person = new Person()
2 {
3 Name = txtName.Text.Trim(),
4 Age = int.Parse(txtAge.Text.Trim()),
5 Sex = cbxSex.SelectedIndex
6 };
7 AppDataHelper.Save<Person>("person", person);
此時會報錯,提示不支持此類型存儲。


那麼我們應該如何存儲一個對象呢?下面我們將介紹文件存儲。
二.文件存儲
對於那些比較復雜的數據類型,我們需要將其存儲為文件的形式存儲在應用中。StorageFile的存儲,以文件的形式進行存儲存入數據。
新建一個類,LocalFileHelper.cs
存儲文件:
1 /// <summary>
2 /// 存儲數據/// </summary>
3 /// <typeparam name="T">數據類型</typeparam>
4 /// <param name="fileName">文件名稱</param>
5 /// <param name="data">數據</param>
6 /// <returns>無</returns>
7 public async static Task Save<T>(string fileName, T data)
8 {
9 //取得當前程序存放數據的目錄
10 StorageFolder folder = Windows.Storage.ApplicationData.Current.LocalFolder;
11 //創建文件,如果文件存在就覆蓋
12 StorageFile file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
13 using (Stream newFileStream = await file.OpenStreamForWriteAsync())
14 {
15 DataContractSerializer ser = new DataContractSerializer(typeof(T));
16 ser.WriteObject(newFileStream, data);
17 newFileStream.Dispose();
18 }
19 }
讀取文件:
1 /// <summary>
2 /// 讀取數據
3 /// </summary>
4 /// <typeparam name="T">數據類型</typeparam>
5 /// <param name="fileName">文件名稱</param>
6 /// <returns>數據</returns>
7 public async static Task<T> Read<T>(string fileName)
8 {
9 T t = default(T);
10 try
11 {
12 StorageFolder folder = Windows.Storage.ApplicationData.Current.LocalFolder;
13 StorageFile file = await folder.GetFileAsync(fileName);
14 if (file == null)
15 return t;
16 Stream newFileStream = await file.OpenStreamForReadAsync();
17 DataContractSerializer ser = new DataContractSerializer(typeof(T));
18 t = (T)ser.ReadObject(newFileStream);
19 newFileStream.Dispose();
20 return t;
21 }
22 catch (Exception)
23 {
24 return t;
25 }
26 }
刪除文件:
1 /// <summary>
2 /// 刪除文件
3 /// </summary>
4 /// <param name="fileName">文件名稱</param>
5 /// <returns>成功true/失敗false</returns>
6 public async static Task<bool> Delete(string fileName)
7 {
8 StorageFolder folder = Windows.Storage.ApplicationData.Current.LocalFolder;
9 StorageFile file = await folder.GetFileAsync(fileName);
10 if (file != null)
11 {
12 try
13 {
14 await file.DeleteAsync();
15 }
16 catch (Exception)
17 {
18 return false;
19 }
20 }
21 return true;
22 }
使用方法:
1 Person person = new Person()
2 {
3 Name = txtName.Text.Trim(),
4 Age = int.Parse(txtAge.Text.Trim()),
5 Sex = cbxSex.SelectedIndex
6 };
7
8 await LocalFileHelper.Save<Person>("person.xml", person);
9
10 List<Person> list = new List<Person>();
11 list.Add(person);
12 list.Add(person);
13 await LocalFileHelper.Save<List<Person>>("personList.xml", list);
14
15
16 Person newPerson = await LocalFileHelper.Read<Person>("person.xml");
17 List<Person> personList = await LocalFileHelper.Read<List<Person>>("personList.xml");
文件在哪裡?
同樣我們打開C:\Users\user_name\AppData\Local\Packages\package\LocalState文件夾,下面就有我們保持的文件,打開文件,保存文件的內容格式為xml:
<Person xmlns="http://schemas.datacontract.org/2004/07/StorageSample" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Age>
27</Age><Name>BetterChaner</Name><Sex>0</Sex></Person>
三.使用sqlite進行數據存儲
Sqlite現已提供對Windows RT和Windows 8 Metro應用的支持.
首先,在工具,選擇擴展與更新中,選擇聯機,在搜索框內輸入sqlite,找到SQLite for Window Runtime,下載安裝。


安裝完成之後重啟VS,右擊項目添加引用,選擇Windows->擴展,找到Mircosoft visual c++ runtime package和sqlite for windows runtime,打勾,確定。


由於目前Sqlite不支持AnyCPU,所以我們將項目改成X64,右擊解決方案,屬性,修改之。


然後右擊引用,選擇管理Nuget程序包,聯機搜索sqlite-net,下載安裝。
我們發現項目工程中多了2個類文件,SQLite.cs和SQLiteAsync.cs


基本操作:
1 //創建資料庫
2 string dbRootPath = Windows.Storage.ApplicationData.Current.LocalFolder.Path;
3 SQLiteConnection db = new SQLiteConnection(Path.Combine(dbRootPath, "myApp.sqlite"));
4
5 //創建表
6 db.CreateTable<Person>();
7
8 //插入一條數據
9 db.Insert(new Person() { Name = "BetterChaner", Age = 27, Sex = 1 });
10
11 //插入多條數據
12 List<Person> list = new List<Person>();
13 list.Add(new Person() { Name = "Zhangsan", Age = 27, Sex = 1 });
14 list.Add(new Person() { Name = "Lisi", Age = 32, Sex = 0 });
15 list.Add(new Person() { Name = "Wangwu", Age = 24, Sex = 1 });
16 db.InsertAll(list);
17
18 //查詢數據
19 List<Person> list2 = db.Query<Person>("select * from Person");
20
21 //更新數據
22 SQLiteCommand cmd = db.CreateCommand("update Person set Age=21 where Name='Lisi'");
23 cmd.ExecuteNonQuery();
24
25 //刪除一條數據
26 db.Delete(new Person() { Name = "Zhangsan", Age = 27, Sex = 1 });
27 //刪除全部數據
28 db.DeleteAll<Person>();
數據存儲的位置為:C:\Users\\AppData\Local\Packages\ \LocalState\文件夾下的myApp.sqlite
四.SqlCE
有了Sqilte,SqlCE不太經常會用到了,在這里就不寫出實例了,與wp中類似。
小結
以上為windows store app開發中可以使用的幾種存儲數據的方式,可以根據數據大小、作用以及類型選擇應該使用哪一種存儲方式。

⑸ 非結構化數據大量存儲本地,無法擴展,怎麼辦

XSKY星辰天合的XUDS在非結構化數據處理上非常專業,他是採用的軟體定義的架構,支持多種協議,讓存儲擺脫硬體和平台的限制。

⑹ C# 本地存儲數據方式選擇

不清楚你所說的一定量是多少,如果只是很少的數據,比如幾十條上百條,那沒啥太大區別,但是xml的效率要比資料庫低的多,如果你的數據到了一個數量級,比如上萬條,那用xml就不太適合了,這個並沒有嚴格規定,跟你的電腦配置也有關系。(比如說到了10萬條,但是你又把電腦升級成固態硬碟陣列去提升磁碟效率)
至於說不想使用專門的資料庫工具,我不太清楚你指什麼,一般常用的桌面資料庫比如access、sqllite這些,無論哪種在軟體發布運行後,都不需要使用什麼資料庫工具。當然,在有些時候為了管理工具,可能是要用到管理工具,access本身是office就帶的,sqllite的管理器一般也非常小。

⑺ 海量數據存儲

存儲技術經歷了單個磁碟、磁帶、RAID到網路存儲系統的發展歷程。網路存儲技術就是將網路技術和I/O技術集成起來,利用網路的定址能力、即插即用的連接性、靈活性,存儲的高性能和高效率,提供基於網路的數據存儲和共享服務。在超大數據量的存儲管理、擴展性方面具有明顯的優勢。

典型的網路存儲技術有網路附加存儲NAS(Network Attached Storage)和存儲區域網SAN(Storage Area Networks)兩種。

1)NAS技術是網路技術在存儲領域的延伸和發展。它直接將存儲設備掛在網上,有良好的共享性、開放性。缺點是與LAN共同用物理網路,易形成擁塞,而影響性能。特別是在數據備份時,性能較低,影響在企業存儲應用中的地位。

2)SAN技術是以數據存儲為中心,使用光纖通道連接高速網路存儲的體系結構。即將數據存儲作為網路上的一個區域獨立出來。在高度的設備和數據共享基礎上,減輕網路和伺服器的負擔。因光纖通道的存儲網和LAN分開,使性能得到很大的提高,而且還提供了很高的可靠性和強大的連續業務處理能力。在SAN中系統的擴展、數據遷移、數據本地備份、遠程數據容災數據備份和數據管理等都比較方便,整個SAN成為一個統一管理的存儲池(Storage Pool)。SAN存儲設備之間通過專用通道進行通信,不佔用伺服器的資源。因此非常適合超大量數據的存儲,成為網路存儲的主流。

3)存儲虛擬化技術是將系統中各種異構的存儲設備映射為一個單一的存儲資源,對用戶完全透明,達到互操作性的目的和利用已有的硬體資源,把SAN內部的各種異構的存儲資源統一成一個單一視圖的存儲池,可根據用戶的需要方便地切割、分配。從而保持已有的投資,減少總體成本,提高存儲效率。

存儲虛擬化包括3個層次結構:基於伺服器的虛擬化存儲、基於存儲設備的虛擬化存儲和基於網路的虛擬化存儲。

1)基於伺服器的虛擬化存儲由邏輯管理軟體在主機/伺服器上完成。經過虛擬化的存儲空間可跨越多個異構的磁碟陣列,具有高度的穩定性和開放性,實現容易、簡便。但對異構環境和分散管理不太適應。

2)基於存儲設備的虛擬化存儲,因一些高端磁碟陣列本身具有智能化管理,可以實現同一陣列,供不同主機分享。其結構性能可達到最優。但實現起來價格昂貴,可操作性差。

3)基於網路的虛擬化存儲,通過使用專用的存儲管理伺服器和相應的虛擬化軟體,實現多個主機/伺服器對多個異構存儲設備之間進行訪問,達到不同主機和存儲之間真正的互連和共享,成為虛擬存儲的主要形式。根據不同結構可分為基於專用伺服器和基於存儲路由器兩種方式。①基於專用伺服器的虛擬化,是用一台伺服器專用於提供系統的虛擬化功能。根據網路拓撲結構和專用伺服器的具體功能,其虛擬化結構有對稱和非對稱兩種方式。在對稱結構中數據的傳輸與元數據訪問使用同一通路。實現簡單,對伺服器和存儲設備的影響小,對異構環境的適應性強。缺點是專用伺服器可能成為系統性能的瓶頸,影響SAN的擴展。在非對稱結構中,數據的傳輸與元數據訪問使用不同通路。應用伺服器的I/O命令先通過命令通路傳送到專用伺服器,獲取元數據和傳輸數據視圖後,再通過數據通路得到所需的數據。與對稱結構相比,提高了存儲系統的性能,增加了擴展能力。②基於存儲路由器的SAN虛擬化,存儲路由器是一種智能化設備,既具有路由器的功能,又針對I/O進行專門優化。它部署在存儲路由器上,多個存儲路由器保存著整個存儲系統中的元數據多個副本,並通過一定的更新策略保持一致性。這種結構中,因存儲路由器具有強大的協議功能,所以具有更多的優勢。能充分利用存儲資源,保護投資。能實現軟硬體隔離,並輔有大量的自動化工具,提高了虛擬伺服器的安全性,降低對技術人員的需求和成本。

⑻ java 數組過大,想用一個輕量級的資料庫用來存儲這個數組

既然是java 不如試試Derby這個資料庫,應該很符合你的要求而且網上資料很多哦在這里也不贅述了。

Derby是一個開源的、100% Java編寫的、與平台無關的、易管理的關系資料庫管理系統。Derby為用戶提供了輕量的標准資料庫引擎,它可以緊密的嵌入到任何基於Java的解決方案中。Derby確保數據完整性,並提供負責的事務處理操作。默認的配置中不包含任何獨立的資料庫伺服器。同時,Derby 的安裝過程非常簡單,只需要將其 .jar 文件復制到系統中並為您的項目添加該 .jar 文件即可。
Derby擁有一個令人驚奇的特性列表。它可以支持關系資料庫中的所有企業級的特性,包括崩潰恢復、事務回滾和提交、行/表級鎖、視圖、主鍵/外鍵約束、觸發器、子查詢表達式,等等。一部分的列表特性使Derby從其他的Java 關系資料庫管理系統中分離出來。
Derby可以有兩種部署方式:
嵌入式:Derby被單個用戶的Java應用程序使用,在這種模式下,Derby和應用程序運行在同一個JVM中。Derby對於終端用戶幾乎是透明的,因為它的啟動和終止都是由應用程序來控制,而不需要任何的管理。
伺服器模式:Derby由應用程序啟動,此時通過用戶可以通過網路連接。在這種模式下,Derby運行在伺服器主機的JVM中。其他JVM的應用程序通過連接伺服器來訪問資料庫。

⑼ VS2012 C#如何儲存本地數據

和其他人說的一樣,方法很多,如果數據不多,這里推薦一個簡單的方法。

以C# winform程序為例

使用其中自帶的配置文件的setting.setting,如上圖。

使用方法如下string test = Properties.Settings.Default.test;//讀取設置值
//根據讀取的設置值進行操作

Properties.Settings.Default.test = "test"; //修改設置屬性
Properties.Settings.Default.Save();//保存讀設置項做的更改,一般在軟體關閉的時候使用

詳細操作請自行網路

setting上面的Resources.resx是存儲資源(圖片,聲音等)文件的,操作方法類似。

⑽ Android本地存儲的幾種方式

Android 提供了5種方式存儲數據: --使用SharedPreferences存儲數據; --文件存儲數據; --SQLite資料庫存儲數據; --使用ContentProvider存儲數據; --網路存儲數據; 先說下,Preference,File, DataBase這三種方式分別對應的目錄是/data/data/Package Name/Shared_Pref, /data/data/Package Name/files, /data/data/Package Name/database 。 在Android中通常使用File存儲方式是用 Context.openFileOutput(String fileName, int mode)和Context.openFileInput(String fileName)。 Context.openFileOutput(String fileName, int mode)生成的文件自動存儲在/data/data/Package Name/files目錄下,其全路徑是/data/data/Pac