先探究两个问题:redis性能这么高,是单线程吗?
其实redis的单线程主要指的是网络IO和键值对的读写由一个线程来完成,这个时候并没有多线程上下文切换造成的损失,而且所有的数据存在内存中,运算性能很高,所以速度很快。这也是redis对外提供服务的主要流程。但是像持久化、集群数据同步、异步删除等是其他的线程执行的。正因为redis提供键值服务的时候使用的是单线程,所以有些耗时的指令一定要慎用,否则可能导致其他的请求阻塞,redis卡顿。
redis单线程如何处理那么多的并发客户端连接?
redis的IO多路复用:Redis利用epoll来实现IO多路复用,将连接信息和事件放到队列中,依次放到 文件事件分派器,事件分派器将事件分发给事件处理器。
上安装流程,现在使用的较多的是reids5的版本
下载地址:http://redis.io/download
安装gcc
yum install gcc
下载redis安装包并解压安装
wget https://download.redis.io/releases/redis-5.0.10.tar.gz tar xzf redis-5.0.10.tar.gz cd redis-5.0.10 make
一些必要的配置
vi redis.conf #注释绑定的网卡ip和关闭保护模式,允许外部网络访问 # bind 127.0.0.1 protected-mode no # 允许后台运行 daemonize yes
启动redis
src/redis‐server redis.conf
验证启动成功
ps ‐ef | grep redis
进入客户端
# 可以指定端口号,redis默认端口号是6379,有些情况可能会修改端口号。src/redis-cli -p 6379
src/redis‐cli
退出客户端
quit
杀掉redis进程的几种方式
1)pkill redis‐server 2)kill 进程号 3)src/redis‐cli shutdown