首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
XuDT
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
Redis(五):Lua脚本
Redis从2.6版本开始支持Lua脚本,通过在服务器端嵌入Lua环境,客户端可以使用Lua脚本在服务器端原子的执行多个命令。 Redis服务器会单线程原子性执行Lua脚本,保证Lua脚本在处理的过程中不会被任意其它请求打断。 为了在Redis服务器中执行Lua脚本,需要在Re…
Redis(四):Redis如何实现分布式锁?
实现分布式锁的方式有Redis分布式锁、MySQL分布式锁、ZooKeeper分布式锁,Redis分布式锁的本质就是在Redis中“占坑”。 1. setnx + del setnx是set if not exist的缩写,通过set key获得锁,使用完后通过del命令释放锁…
Redis(三):Redis如何实现高可扩展?
Redis集群提高了Redis的可扩展性,Redis的集群方案主要有Redis Cluster和Codis。 Redis Cluster是Redis官方提供的去中心化集群方案,通过分片来进行数据共享,并提供复制和故障转移功能。 Redis集群通过分片的方式来保存数据库中的键值对…
Redis(二):Redis如何做高可用?
Redis主从复制是异步同步的,主从复制双方都保存相同的数据,保证最终一致性。 slaveof <master_ip> <master_port>:通过向从服务器发送slaveof命令,可以让该从服务器去复制一个主服务器。从服务器会将master_ip和ma…
Redis(一):Redis为什么高性能?
Redis的简单动态字符串SDS是可变的,遵循C字符串以1字节空字符结尾,最大长度为512M。 SDS底层使用一个字节数组保存字符串内容,通过len属性可O(1)的复杂度获取字符串长度。 SDS采用空间预分配和惰性空间释放来优化SDS的内存分配次数(n次 → 最多n次)。 空间…
网络编程(三):I/O多路复用
操作系统通过Socket(一套通用网络编程接口)提供一组系统调用,使得应用程序能够访问内核协议提供的服务。 将应用程序数据从用户缓冲区中复制到TCP/IP内核发送缓冲区,再通过内核来发送数据(send())。 从内核TCP/IP接收缓冲区复制数据到用户缓冲区读取数据(write…
网络编程(二):Java NIO
NIO是同步非阻塞I/O,在JDK 1.4引入的面向缓冲区的I/O(基于块),基于Channel和Buffer进行操作,数据总是从Channel读取到Buffer中(Buffer相当于一个容器),或者从Buffer写入到Channel中。Selector用于监听多个Channe…
网络编程(一):Thrift详解
Thrift是一个轻量级、跨语言的远程服务调用框架,支持C++、Java、Python、PHP、Ruby等。通过代码生成引擎自动生成RPC接口Thrift IDL文件对应的各种主流语言的RPC服务端/客户端模板代码,省去自定义和维护接口编解码、消息传输、服务器多线程模型等基础工…
个人成就
文章被点赞
27
文章被阅读
11,313
掘力值
327
关注了
4
关注者
18
收藏集
1
关注标签
1
加入于
2019-11-11