Spring访问Redis+利用Redis做缓存+MongoDB
目录
Spring访问Redis
利用Redis做缓存
MongoDB
Windows安装过程
MongoDB操作
Oracle查看执行计划
Spring访问Redis
1.引入spring和redis包
spring ioc、aop、dao
redis jedis、pool
spring-data-redis
2.在applicationContext.xml配置
<bean id="factory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="localhost"> </property> <property name="port" value="6379"> </property> </bean> <bean id="stringSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"> </bean> <bean id="template" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="factory"></property> <property name="keySerializer" ref="stringSerializer"></property> </bean>
3.从Spring容器获取Template使用
@Test public void test5(){ String conf = "applicationContext.xml"; ApplicationContext ac = new ClassPathXmlApplicationContext(conf); RedisTemplate template = ac.getBean("template",RedisTemplate.class); template.opsForValue().set("msg", "你好"); System.out.println(template.opsForValue().get("msg")); }
利用Redis做缓存
public PageVo loadEmps(int page,int pageSize) { //先查询redis String key = “emps:”+page+":"+pageSize; PageVo vo = (PageVo)redis.opsForValue().get(key); if(vo == null){ //redis不存在就调用EmpDao查询DB Page p = PageHelper.startPage(page, pageSize); List list = empDao.loadAll(); vo = new PageVo(); vo.setData(list); vo.setPage(p.getPageNum()); vo.setTotalPage(p.getPages()); vo.setTotalRecords(p.getTotal()); //将vo写入redis redis.opsForValue().set(key,vo); } return vo; }
更新操作
清除缓存记录
更新DB记录
MongoDB
MongoDB属于NoSQL之一,是一个分布式文件存储数据库。
MongoDB存储结构非常灵活,底层以BSON结构存储。
MongoDB提供了非常丰富的查询操作,可以实现数据的过滤。还提供了索引等功能。
Windows安装过程
将安装包解压
创建两个文件夹,data和logs
启动mongod服务器端
//进入mongodb\bin目录下执行下面命令 mongod --dbpath ..data目录
启动mongo客户端
双击mongo.exe或mongo
将mongod服务器启动做成window服务
mongod --dbpath ..data目录 --logpath ..logs\a.log --serviceName 服务名 --install
提示:查看下a.log文件是否有错误提示,如果正常就可以双击mongo.exe启动客户端。
如何删除创建好的服务
sc delete 服务名
MongoDB操作
库操作
show dbs //查看有哪些库
use 库名 //使用某个库,没有会自动创建
db.dropDatabase() //删除当前库
集合操作
show collections //查看库中所有集合
db.集合.drop() //删除集合
db.集合.insert() //向集合添加记录,没有集合会自动创建
db.集合.find() //查询集合记录
db.集合.update() //更新集合记录
db.集合.remove() //删除记录记录
集合操作示例
db.dept.insert({"deptno":10,"dname":"Java"}) for(var i=50;i<60;i++){ db.dept.insert({"deptno":i,"dname":"java"+i}); }; db.dept.find() db.dept.find({"deptno":1}) db.dept.find({"deptno":{$gt:50}}) db.dept.find({"dname":/h/}) db.dept.update({"deptno":1},{"dname":"H5"}) db.dept.update({"deptno":59},{$set:{"dname":"JAVA59"}}) db.dept.remove({"deptno":59}) db.dept.remove({}) db.dept.count() db.dept.count({"deptno":{$gt:50}}) db.dept.ensureIndex({"deptno":1}) db.dept.dropIndexes();
Oracle查看执行计划
SQL> EXPLAIN PLAN FOR SELECT * FROM EMP; 已解释。 SQL> SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY(‘PLAN_TABLE’)); 或者: SQL> select * from table(dbms_xplan.display);