Redis入门

简介

  • 远程字典服务
  • 支持众多语言(Java、Go、PHP、Python等)

做什么

  • 内存存储、持久化、内存中是断电即失,持久化很重要(rdb、aof)
  • 效率高、可以用于高速缓存
  • 发布订阅系统
  • 地图信息分析
  • 计时器、计数器(浏览量)

特性

  • 多样的数据类型
  • 持久化
  • 集群
  • 事务

Linux安装

  1. 官网下载安装包

  2. 解压redis安装包,一般放到opt

  3. 进入解压后的文件,可以看到我们redis的配置文件

  4. 基本环境配置

    1
    2
    3
    4
    5
    6
    7
    # 安装gcc环境
    yum install gcc-c++
    # 查看版本
    gcc -v
    # 编译
    make
    make install
  5. redis的默认安装路径、/usr/local/bin

  6. 将redis配置文件。redis.conf拷贝到自己建的文件夹

  7. 改为后台启动redis.conf—daemonize yes

  8. 启动服务

  9. cd /redis-server dir/redis.conf

  10. redis-cli -p 6379

  11. ping—set name ccc—-get name—keys *

  1. 查看进程存在

测试性能

  1. 测试100个并发连接,1w请求

    1
    redis-benchmark -h localhost -p 6379 -c 100 -n 100000
  2. 查看结果

基础知识

  • redis默认有16个数据库,默认使用第0个
  • 切换数据库,select 3
  • 查看DB大小

  • 查看所有的key

    1
    keys *
  • 清空当前数据库

    1
    flushdb

  • 清空全部数据库

    1
    flushall

Redis是单线程

  1. redis基于内存操作,cpu不是redis性能瓶颈
  2. 根据机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程

Redis单线程为什么还这么快

  1. 误区1:高性能服务器一定是多线程的
  2. 误区2:多线程(cpu上下文切换!)一定比单线程效率高
  3. 先去CPU > 内存 > 硬盘的速度要有所了解
  4. redis是将所有的数据全部放到内存中的,所有说使用单线程去操作效率就是最高的,多线程(cpu上下文切换:耗时多的操作!!)
  5. 对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个cpu上的,在内存情况下这就是最佳方案