Redis概述

什么是Redis

Remote Dictionary Server 远程字典服务!

C开发,key-vlule,多语言api,持久化

Reids能干什么
  1. 内存存储、持久化,内存是断电即失的,所以需要持久化(RDB、AOF)
  2. 高效率、用于高速缓冲
  3. 发布订阅系统
  4. 地图信息分析
  5. 计时器、计数器(eg:浏览量)
特性
  1. 多样的数据类型
  2. 持久化
  3. 集群
  4. 事务

安装

linux

  1. 下载 tar.gz安装包

  2. 解压

  3. 环境安装

    yum install gcc-c++
    
    #然后进入redis目录下执行
    make 
    
    make install
    
  4. redis默认安装路径:/usr/local/bin

  5. 将解压后的redis.confg移动到安装目录新建的xxxx文件夹下,以后启动就用此配置文件

  6. 修改redis.conf文件 daemonize为yes,表示后台启动

  7. 启动服务端:redis-server xxxx/redis.conf

  8. 启动客户端:redis-cli -p 6379

  9. 测试:ping,显示pong,表示成功

  10. 查看redis进程:ps -ef|grep redis

  11. 关闭redis:shutdown 然后exit

性能测试

redis-benchmark

命令:redis-benchmark 参数

redis概述_数据库

测试:redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000

10000 requests completed in 0.16 seconds  测试10000个请求
50 parallel clients 50个并发客户端
3 bytes payload 每次写入三个字节
keep alive: 1	只有一台服务器处理请求,单机性能

99.53% <= 1 milliseconds
100.00% <= 1 milliseconds 所有请求在2毫秒内处理完成
62893.08 requests per second	每秒处理的请求数

基础知识

默认16个数据库,使用第一个index:0

选择数据库:select index

查看当前数据库数据size:DBSIZE

清空当前库:flushdb

清空全部库:flushall

单线程

Redis将所有的数据全部放在内存中,使用单线程去操作效率比较高,对于多线程,CPU有一种东西叫做上下文切换,这种操作耗时,对于内存系统来说,没有上下文切换,效率一定是最高的。

redis单线程已经将cpu利用很高了,没有必要多线程,多线程下,cpu上下文切换,锁等会消耗资源,得不偿失