Java框架高难度代码 java框架难吗( 三 )


优点:
1、 快速
2、 简单
3、 多种缓存策略
4、缓存数据有两级:内存和磁盘 , 因此无需担心容量问题
5、 缓存数据会在虚拟机重启的过程中写入磁盘
6、可以通过RMI、可插入API等方式进行分布式缓存
7、 具有缓存和缓存管理器的侦听接口
8、支持多缓存管理器实例,以及一个实例的多个缓存区域
9、提供Hibernate的缓存实现
缺点:
1、使用磁盘Cache的时候非常占用磁盘空间:这是因为DiskCache的算法简单,该算法简单也导致Cache的效率非常高 。它只是对元素直接追加存储 。因此搜索元素的时候非常的快 。如果使用DiskCache的,在很频繁的应用中,很快磁盘会满 。
2、 不能保证数据的安全:当突然kill掉java的时候 , 可能会产生冲突,EhCache的解决方法是如果文件冲突了,则重建cache 。这对于Cache数据需要保存的时候可能不利 。当然,Cache只是简单的加速,而不能保证数据的安全 。如果想保证数据的存储安全 , 可以使用Bekeley DB Java Edition版本 。这是个嵌入式数据库 。可以确保存储安全和空间的利用率 。
九、Redis
redis是一个key-value存储系统 。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型) 。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的 。在此基础上,redis支持各种不同方式的排序 。与memcached一样,为了保证效率,数据都是缓存在内存中 。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步 。
Redis数据库完全在内存中 , 使用磁盘仅用于持久性 。相比许多键值数据存储,Redis拥有一套较为丰富的数据类型 。Redis可以将数据复制到任意数量的从服务器 。
1.2、Redis优点:
(1)异常快速:Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录 。
(2)支持丰富的数据类型:Redis支持最大多数开发人员已经知道像列表 , 集合,有序集合,散列数据类型 。这使得它非常容易解决各种各样的问题,因为我们知道哪些问题是可以处理通过它的数据类型更好 。
(3)操作都是原子性:所有Redis操作是原子的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值 。
(4)多功能实用工具:Redis是一个多实用的工具 , 可以在多个用例如缓存,消息,队列使用(Redis原生支持发布/订阅),任何短暂的数据,应用程序 , 如Web应用程序会话 , 网页命中计数等 。
1.3、Redis缺点:
(1)单线程
(2)耗内存
十、Shiro
Apache Shiro是Java的一个安全框架,旨在简化身份验证和授权 。Shiro在JavaSE和JavaEE项目中都可以使用 。它主要用来处理身份认证,授权,企业会话管理和加密等 。Shiro的具体功能点如下:
(1)身份认证/登录,验证用户是不是拥有相应的身份;
(2)授权,即权限验证 , 验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色 。或者细粒度的验证某个用户对某个资源是否具有某个权限;
(3)会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的;
(4)加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储;