Redis
一、基本概述
1、Redis是什么?
Redis(Remote Dictionary Server),即远程字典服务!
是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value的数据库,并提供多种语言的API。
2、Redis能干嘛?
1、内存存储、持久化、内存中是断电即失,所以持久化很重要(rdb、aof)
2、效率高,可用于高速缓存
3、发布订阅系统
4、地图信息分析
5、计时器、计数器(浏览量)
6、…….
3、特性
1、多样的数据类型
2、持久化
3、集群
4、事务
……
二、Linux下Redis安装
Centos系统
1 | # 下载redis |
redis的默认安装路径如下
redis.conf文件配置
三、Redis启动
3.1 启动
1 | # 确保在/usr/loacl/bin目录下 |
3.2 查看redis的进程是否开启
1 | ps -ef |grep redis |
3.3 关闭redis
1 | redis-cli -p 6379 |
四、测试性能
redis-benchmark是一个压力测试工具,官当自带的性能测试工具
简单测试:
1 | # 测试,100个并发链接,100000请求 |
写如下
读如下
五、基础知识
redis默认有16个数据库,默认使用的是第0个
可以使用select进行切换
1 | 127.0.0.1:6379> select 3 #切换第3个数据库 |
1 | 127.0.0.1:6379[3]> keys * #查看数据库所有的key |
Redis是单线程的!
官方表示,Redis是基于内存操作,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽决定的,既然可以使用单线程来实现,就使用单线程了!
Redis是C语言写的,官方提供的数据为100000+的QPS,完全不比同样是使用key-value的Memecache差!
Redis为什么单线程还这么快?
1、误区1:高性能的服务器一定是多线程的!
2、误区2:多线程(CPU上下文切换)一定比单线程效率高
CPU > 内存 >硬盘(速度方面)
核心:Redis是将所有的数据全部存放在内存中,所以使用单线程去操作效率就是最高的,多线程(CPU上下文会切换:耗时的操作),对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个CPU上,在内存情况下,这个就是最佳的方案。