- 博客(14)
- 资源 (6)
- 收藏
- 关注
原创 Redis的持久化
Redis支持持久化。Redis 为了保证效率,数据缓存在了内存中,但是会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件中,以保证数据的持久化。持久化策略有两种:RDB(Redis DataBase):快照形式,直接把内存中的数据保存到一个二进制文件 dump.rdb中,定时保存,保存策略。这是Redis默认持久化方式。工作原理是当 Redis 需要做持久化时,Redis 会...
2020-03-30 21:45:45 287
原创 Redis的线程模型
Redis是单线程。采用单线程理由是1)Redis 完全是基于内存的操作,CPU 不是 Redis 的瓶颈,其瓶颈最有可能是机器内存的大小或者网络带宽。2)单线程容易实现好处是采用单线程,避免了不必要的上下文切换和竞争条件,不存在多线程导致的 CPU 切换,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有死锁问题导致的性能消耗。也许是为了弥补无法发挥多核CPU优势的缺陷,Redis采用...
2020-03-29 22:55:01 335
原创 Redis缓存问题
Redis就是用支持缓存的,它有什么缓存问题?1、一致性问题分布式系统的数据一般都是弱一致性,或最终一致性。因为有CAP原则,在一致性(Consistency)、可用性(Availbility)和分区容错性(Partition Tolerance,分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性或可用性的服务)中只能三者取其二,由于分布式系统一定有分区容错性,所以只有一致...
2020-03-29 21:31:38 296
原创 分布式锁
以下内容纯粹是个人理解,并不一定正确。在网上没有搜到特别满意的资料,先总结一下,记录下来,日后再出发。一、什么是分布式锁“分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。”这是百度百...
2020-03-26 00:46:30 502
原创 Redis的主从复制和哨兵机制
Redis为了避免单点故障,所以可以配备多节点。其中又分为主从节点。所谓主从复制,读写分离,套路无非就是主节点负责写,从节点提供读。一旦主节点故障,那么还要从剩余的从节点中找到一个升任主节点。显然这是为了提高Redis的可用性。可靠性是指不出故障;可用性是指出了故障还能使用。从节点要升级为主节点,就涉及到复制,要将主节点的内容复制到该从节点。复制分为全复制和部分复制。第一次复制时为全复制;其后为...
2020-03-25 00:10:11 345
原创 多租户(还需要输入2个字)
多租户(multi-tenancy technology),也可以叫多租户架构,或者多重租赁技术,是一种软件架构技术,探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。比如说,在网上部署了一套教务管理系统,然后给好多学校使用。系统只有一套,但每个学校进来,看到的都是自己学校的东西,学校之间互不可见,每个学校各自管理自己的学生、教师、课程之类的数据。那么这套...
2020-03-23 22:58:05 441
原创 IO多路复用
什么是IO多路复用?就是异步阻塞IO。服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(Blocking IO):即传统的IO模型。(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。(3)IO多路复用(IO Multiplexing):即经典的Reactor设计模式...
2020-03-22 23:49:33 7309 2
原创 布隆过滤器
布隆过滤器,一种数据结构,用于判断一个东西一定不存在或有可能存在。其本质,是一个bit数组。它将一个对象分拆作哈希运算,然后指向其中若干个BIT位,置为1。所以如果检查到某个对应BIT位为0,则可以肯定该对象不存在。如果该对象所有对应的BIT位都为1呢,是不是可以证明该对象存在呢?不能,因为有其他对象也可能指向了这些BIT位。所以布隆过滤器只能判断一个东西一定不存在或有可能存在。但是由上可知...
2020-03-18 23:05:20 504
原创 GUID、UUID和snowflake
UUID:Universally Unique Identifier,通用唯一标识符。GUID:Global Unique Identifier,全局唯一标识符。这两者都差不多,基本上可以看做是同一种东西,只不过GUID是微软系的东东。目的都是让分布式系统中的所有元素,都能有唯一的标识,而不需要透过中央控制端来做辨识。说白了,就是用于生成一个唯一ID。比如说,可以用于生成分布式数据库里的记录I...
2020-03-18 22:25:41 1523
原创 基于http的API的安全性
基于http的API,怎么保证安全性?当前的信息系统,安全第一道关卡,当然就是密码了。API也不例外。要么就是一次性登录,获得一个短期内有效的token;要么就是每次请求都带上账号和密码。如果是每次都带上账号和密码,那么API站点必须要求使用https,否则有泄露风险。当然变通方法可以是采用非对称加密,将密码用公钥加密后发送,服务端用私钥解密。但是,这么一来,客户端的工作量变大,不一定可行。...
2020-03-17 12:16:35 466
原创 防御CSRF问题
CSRF,Cross-site request forgery,跨站点请求伪造。简而言之,这个攻击就是伪造。伪造出一个合法站点的链接,诱使你去点击;或者伪造一个表单,提交给合法站点。在一个系统里面,用你这个合法的账号,规规矩矩地浏览,使用,是不会出什么乱子的,你所点击的链接,提交的表单,都是开发人员预先控制范围之内。但CSRF攻击,则是伪造出一个链接,链接地址带上居心不良的参数,比如指向删除动...
2020-03-16 18:16:24 353
原创 Maven添加Oracle的依赖及驱动
在一台新机器上下载一个spring boot项目代码,编译报错了,在我机器上是好好的。报错是因为没有oracle的驱动:<dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId></dependency>据说是由...
2020-03-16 16:42:35 735
数字证书制作工具itisscg.exe
2018-12-11
CAS5.1.8自定义验证码源代码
2018-12-05
自动伸缩搜索框2
2017-04-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人