介绍
Redis能干嘛
1.内存存储、持久化,内存中是断电即失,所以持久化很重要(rdb、aof)
2.效率高,可以用于高速缓存
3.发布订阅系统
4.地图信息分析
5.计时器、计数器
特性
1.多样的数据类型
2.持久化
3.集群
4.事务
Linux安装
官网:http://redis.cn/ 1.下载、解压、上传 2.#apt -y install gcc 3.#make && make install 4.默认安装路径/usr/local/reids 5.备份redis.conf文件 6.redis默认是不后台启动的,修改redis.conf(在刚刚解压的文件里 ) # 找到daemonize no 修改为yes 7.启动服务(启动指定配置文件) # redis-server /opt/redis-6.0.6/redis.conf 8.使用Redis客户端测试连接 root@test:/usr/local/bin# redis-cli -p 6379 127.0.0.1:6379> ping PONG 9.关闭Redis 127.0.0.1:6379> SHUTDOWN not connected> exit root@test:/usr/local/bin#
性能测试
测试:100个并发连接 10000个请求 #redis-benchmark -h localhost -p 6379 -c 100 -n 10000 查看分析 ====== SET ====== 10000 requests completed in 0.17 seconds #对我们的一万个请求进行写入测试 100 parallel clients #100个并发客户端 3 bytes payload #每次写入3个字节 keep alive: 1 #只有一台服务器,单机性能 62.58% <= 1 milliseconds #所有请求在3毫秒内完成 99.64% <= 2 milliseconds 100.00% <= 2 milliseconds 60606.06 requests per second
基础知识
Redis默认有16个数据库
默认使用的是第0个
127.0.0.1:6379> SELECT 3 #切换数据库 OK 127.0.0.1:6379[3]> DBSIZE #查看DB大小 (integer) 4 127.0.0.1:6379[3]> keys * #查看数据库所有的key 1) "name" 127.0.0.1:6379[3]> FLUSHALL #清空所有数据库内容 OK 127.0.0.1:6379[3]> FLUSHDB #清空当前数据库内容 OK
Redis是单线程的!
官方表示,Redis是基于内存操作,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽,即可以使用单线程来实现,不需要花里胡哨!
Redis是C语言写的,官方提供的数据为10000QPS,完全不比同样适用key-vale的Memcache差
为什么Redis单线程还这么快?
误区1:高性能的服务器一定是多线程的
误区2:多线程一定比单线程效率高
核心:Redis是将所有的数据全部放在内存中,所以使用单线程去操作就是效率最高的,多线程CPU会上下切换,很耗时!对于内存系统来说,单线程效率最高!