‘壹’ java怎样将数据保存到缓存中,之后再保存
Java中可以使用队列来保存数据,当使用的时候,加上锁,防止其他进程访问,当不用的时候保存到数据库里面,示例如下:
packagecom.henry;
importjava.util.HashMap;
importjava.util.Map;
importjava.util.Random;
importjava.util.concurrent.locks.ReadWriteLock;
importjava.util.concurrent.locks.ReentrantReadWriteLock;
publicclassCacheDataTest{
staticMap<Integer,Object>dataMap=newHashMap<Integer,Object>();
staticReadWriteLocklock=newReentrantReadWriteLock();//创建读写锁的实例
staticObjectgetData(Integerkey){
lock.readLock().lock();//读取前先上锁
Objectval=null;
try{
val=dataMap.get(key);
if(val==null){
//
lock.readLock().unlock();
lock.writeLock().lock();
try{
//可能已经由其他线程写入数据
if(val==null){
//dataMap.put(key,"");//queryfromdb
val=queryDataFromDB(key);
}
}finally{
//
lock.readLock().lock();
//Unlockwrite,stillholdread
lock.writeLock().unlock();
}
}
}finally{
lock.readLock().unlock();//最后一定不要忘记释放锁
}
System.out.println("getdatakey="+key+">val="+val);
returnval;
}
staticObjectqueryDataFromDB(Integerkey){
Objectval=newRandom().nextInt(1000);
dataMap.put(key,val);
System.out.println("writeintodatakey="+key+">val="+val);
returnval;
}
publicstaticvoidmain(String[]args){
for(inti=0;i<10;i++){
newThread(newRunnable(){publicvoidrun(){
getData(newRandom().nextInt(5));
}}).start();
}
}
}
‘贰’ 怎么写一个缓存把从数据库中的数据放入缓存中,在页面直接读取缓存中的数据
先定义成结构,把表里的字段存进结构,然后把结构定义成vector,把结构存入vector,也就是缓存了,要的时候取就是了
‘叁’ MySQL数据库怎么导出数据
方法一
cmd 到mysql bin目录下用 如下命令 mysqlmp --opt -h192.168.0.156 -uusername -ppassword --skip-lock-tables databasename>database.sql
把ip改成localhost就可以的
如果装了navicate那就更简单了 先连接上数据库,选中数据库 再选择转储sql 就好了
方法二
进入cmd (注意在os cmd中 而不是在mysql中)
===================
1.导出数据库(sql脚本)
mysqlmp -u 用户名 -p 数据库名 > 导出的文件名
mysqlmp -u root -p db_name > test_db.sql
2.mysql导出数据库一个表
mysqlmp -u 用户名 -p 数据库名 表名> 导出的文件名
mysqlmp -u wcnc -p test_db users> test_users.sql (结尾没有分号)
方法三
启动mysql服务
/etc/init.d/mysql start
导出整个数据库
mysqlmp dbname > c:mydb.sql -u root -p
导入数据库
source mydb.sql
mysql -u用户名 -p 数据库名 < 数据库名.sql
更详细的导入数据库教程
2.1. 导出sql脚本
在原数据库服务器上,可以用php教程myadmin工具,或者mysqlmp(mysqlmp命令位于mysql/bin/目录中)命令行,导出sql脚本。
2.1.1 用php(www.111cn.net)myadmin工具
导出选项中,选择导出"结构"和"数据",不要添加"drop database"和"drop table"选项。
选中"另存为文件"选项,如果数据比较多,可以选中"gzipped"选项。
将导出的sql文件保存下来。
2.1.2 用mysqlmp命令行
命令格式
mysqlmp -u用户名 -p 数据库名 > 数据库名.sql
范例:
mysqlmp -uroot -p abc > abc.sql
(导出数据库abc到abc.sql文件)
提示输入密码时,输入该数据库用户名的密码。
2.2. 创建空的数据库
通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。
2.3. 将sql脚本导入执行
同样是两种方法,一种用phpmyadmin(mysql数据库管理)工具,或者mysql命令行。
2.3.1 用phpmyadmin工具
从控制面板,选择创建的空数据库,点"管理",进入管理工具页面。
在"sql"菜单中,浏览选择刚才导出的sql文件,点击"执行"以上载并执行。
注意:phpmyadmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件
比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。
gzip使用方法:
# gzip xxxxx.sql
得到
xxxxx.sql.gz文件。
2.3.2 用mysql命令行
命令格式
mysql -u用户名 -p 数据库名 < 数据库名.sql
范例:
mysql -uabc_f -p abc < abc.sql
(导入数据库abc从abc.sql文件)
提示输入密码时,输入该数据库用户名的密码。
‘肆’ 如何把数据库里的数据导出来
材料/工具:SQL Server
1、打开SQL Server,找到需要导出的数据库。