redis初识

Posted dagreentree

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis初识相关的知识,希望对你有一定的参考价值。

1、前置知识

磁盘知识:寻址:ms

     宽带:G/M

内存:寻址:ns

          带宽:很大

秒 > 毫秒 > 微秒 > 纳秒

内存寻址比硬盘寻址快10w倍

折中做法:

  将内存种的一部分数据做缓存

  memcached

  key value结构,value没有类型的概念

  redis(秒级十万操作)

  同为key value结构,value有类型,string(字符,数值,bitmaps),hashes,lists,sets,sorted sets

2、安装

//下载
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 

3、处理流程

linux系统种存在kernel(内核),epoll是一种系统调用,redis是单进程单线程单实例并发很多的请求,为什么并发那么多。调用了系统内核的epoll

epoll概念

文件描述符从block(阻塞)发展到noblock(非阻塞的),这时为同步非阻塞时期

此时发展出一个问题,用户进程轮询调用1000次kernel,成本问题

这时发展出了select概念

统一把这一千个文件描述符传给select,多路复用nio,减少了内核态和用户态的切换

这些所有的功能都是由jvm实现的,jvm由c编写

4、关于linux用户态和内核态(待完善)

问题:文件描述符相关数据拷来拷去成为累赘

内核有内核的空间,用户有用户的空间,所以伸展出一个内核和用户的共享空间

共享空间由红黑树+链表+mmap实现

5、实际操作

 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。

 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 
 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

以上是关于redis初识的主要内容,如果未能解决你的问题,请参考以下文章

Java初识方法

初识OpenGL 片段着色器(Fragment Shader)

初识OpenGL 片段着色器(Fragment Shader)

redis初识01

初识OpenGL (-)纹理(Texture)

初识OpenGL (-)纹理(Texture)