标签:tran logs 描述 集合 select 问题 发展 没有 同步
磁盘知识:寻址:ms
宽带:G/M
内存:寻址:ns
带宽:很大
秒 > 毫秒 > 微秒 > 纳秒
内存寻址比硬盘寻址快10w倍
折中做法:
将内存种的一部分数据做缓存
memcached
key value结构,value没有类型的概念
redis(秒级十万操作)
同为key value结构,value有类型,string(字符,数值,bitmaps),hashes,lists,sets,sorted sets
//下载 wget http://download.redis.io/releases/redis-5.0.5.tar.gz //解压 tar -xf redis-5.0.5.tar.gz //安装 make make install PREDIX=/opt/redis
//修改环境变量
vim /etc/profile
export REDIS_HOME:/opt/redis
export PATH:.$PATH:REDIS_HOME/bin
//安装服务,按脚本填写配置,自动生成脚本文件在/etc/redis/6379
cd utils
./install_server.sh
linux系统种存在kernel(内核),epoll是一种系统调用,redis是单进程单线程单实例并发很多的请求,为什么并发那么多。调用了系统内核的epoll
epoll概念
文件描述符从block(阻塞)发展到noblock(非阻塞的),这时为同步非阻塞时期
此时发展出一个问题,用户进程轮询调用1000次kernel,成本问题
这时发展出了select概念
统一把这一千个文件描述符传给select,多路复用nio,减少了内核态和用户态的切换
这些所有的功能都是由jvm实现的,jvm由c编写
问题:文件描述符相关数据拷来拷去成为累赘
内核有内核的空间,用户有用户的空间,所以伸展出一个内核和用户的共享空间
共享空间由红黑树+链表+mmap实现
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。
标签:tran logs 描述 集合 select 问题 发展 没有 同步
原文地址:https://www.cnblogs.com/dagreentree/p/13371084.html