前台的页面一般是一个页面一个域名(服务器或集群),尤其是首页访问压力比较大,所以前台的广告需要使用缓存来缓解数据库的访问压力,加快访问速度
图片上传的时候有时候会报错,解析不了图片服务器的地址,原因是配置文件未编译至target,所以方法中解析不了 应该先clean 再编译
还有就是scope.entity.pic会报错说pic未定义原因就是程序不知道entity是不是一个对象我们可以先定义scope.entity.pic 会报错说pic未定义 原因就是程序不知道entity是不是一个对象 我们可以先定义scope.entity.pic会报错说pic未定义原因就是程序不知道entity是不是一个对象我们可以先定义scope.entity ={} (给页面中新建按钮绑定单机事件最好 ng-click=‘entity={}’)
使用redis的情况:访问频繁,访问量大,内容变化较少,内容相对不太重要
如何降低数据库的访问压力:1.数据缓存 2.网页静态化
做缓存的时候要连接redis,redis有一个配置文件需要加载,服务器的地址,端口号,超时时间,最大连接数量等
另外redis有一个spring配置文件,里面配置一个redis对象,一个redisConnection对象 一个redisTemplate对象
redisTemplate 操作
删除一个键值对 delete(“键的名字”)
添加String类型的值 boundValueOps(“键的名字”).set(“内容”)
获取String类型的值 boundValueOps(“键的名字”).get()
添加set类型的值 boundSetOps(“键的名字”).add(值的内容)
获取set类型的值 boundSetOps(“键的名字”).members()
删除其中的某个值 boundSetOps(“键的名字”).remove(“值”)
添加list类型的值 boundListOps(“键的名字”).rightPush/leftPush(值的内容)
获取list类型的所有值 boundListOps(“键的名字”).range(起始索引,数据个数)
删除其中的某个值 boundListOps(“键的名字”).remove(删除的个数,“值”) 如果写的数量小于1至少删一个,写多个则在删除的数量内有几个删几个
获取list类型的某个值 boundListOps(“键的名字”).index(索引)
添加hash类型的值 boundHashOps(“键的名字”).put(“key1”,值1)
获取hash类型的值 boundHashOps(“键的名字”).get(“key1”)
删除其中的某个值 boundHashOps(“键的名字”).delete(“key1”)
获取所有的key boundHashOps(“键的名字”).keys()
获取所有的值 boundHashOps(“键的名字”).values()
redis缓存清空的问题
数据的查询应该是先查询缓存,缓存没有再查询数据库,但是缓存的数据必须和数据库的数据保持一致,为此在发生增删改的时候要清空相应的缓存,但是清除缓存的时候不能将所有广告的缓存数据都清空,应该是哪个类型的广告发生变化就清空哪个类型的广告,所以有一个大key,然后有许多小key
增删改的时候缓存的清空是不一样的
增加的时候是清空增加类型的缓存就行
删除的时候也是删除这一个类型的就行,但删除的时候是涉及删除的多个的,为避免重复删除同一类型的缓存,可以把删除的广告的类型放入到一个set集合,等去重完毕后再删除,避免重复的操作
修改的时候则涉及到修改了广告类型的情况,此情况下应该是将改前的类型和改后的类型的缓存都清空一下,为避免重复删除可以判断一下类型是否相同
JPA Java Persistence API java持久层API ORM Object Relational Mapping 对象关系映射