1-Redis介绍及安装

​ Redis介绍及环境安装

前置环境

centos7.9 最小化安装

redis-6.0.6.tar.gz

环境可以连接外网用于安装环境依赖

安装依赖环境并确认gcc版本

 yum install centos-release-scl
 yum install devtoolset-7-gcc*
scl enable devtoolset-7 bash

安装reidis

  1. 解压安装包

image-20220412163238612

tar -zxvf redis-6.0.6.tar.gz 
  1. 进入安装目录

image-20220412163338269

cd redis-6.0.6
  1. 编译安装
make 
make install

redis 默认安装路径

cd /usr/local/bin/

image-20220412163558236

  1. 创建目录 并将redis的配置文件复制到 程序安装目录 /usr/local/bin/kconfig下

    mkdir peizhi
    cp /opt/redis-6.0.6/redis.conf /usr/local/bin/peizhi/
    
  2. redis默认不是后台启动 需要修改配文件 大概在文件的220行左右

    vim /usr/local/bin/peizhi/redis.conf
    

    image-20220412164230195

  3. 通过指定的配置文件启动服务

    cd /usr/local/bin
    redis-server peizhi/redis.conf 
    

image-20220412164428937

  1. 用redis-cli连接redis,Redis的默认端口6379

    redis-cli -p 6379
    

    image-20220412164906971

    1. 查看redis进程是否开启

      ps -ef |grep redis
      

      image-20220412164929465

    2. 关闭 退出redis

shutdown
exit

image-20220412165108528

redis-benchmark介绍

redis-benchmark 是redis自带官方压力测试官方工具

image

#测试 100并发连接  100000请求
redis-benchmark -h localhost -p 6379 -c 100 -n 100000

后面可以根据自己的要求调节参数测试

启动服务

redis-server peizhi/redis.conf
 ps -ef |grep redis

image-20220412165800880

image-20220412165814448

image-20220412170537941

  100000 requests completed in 1.71 seconds #10万次访问请求
  100 parallel clients # 100客户端并发连接
  3 bytes payload#每次3 bytes
  keep alive: 1 #单机性能
  host configuration "save": 900 1 300 10 60 10000
  host configuration "appendonly": no
  multi-thread: no

36.99% <= 1 milliseconds
97.37% <= 2 milliseconds
99.88% <= 3 milliseconds
99.90% <= 15 milliseconds
99.90% <= 16 milliseconds
100.00% <= 16 milliseconds #16毫秒完成请求
58548.01 requests per second #每秒处理58548.01次请求

redis基础知识

reids默认有16个数据库 默认使用第0个数据库

vim peizhi/redis.conf

image-20220412171144183


127.0.0.1:6379> select 3 #select 用于切换数据库
OK
127.0.0.1:6379[3]> dbsize # dbsize查看数据库key的个数  现在是0
(integer) 0
127.0.0.1:6379[3]> 

不同数据库之间 数据是不能互通的

127.0.0.1:6379[3]> set name panlin #数据库3中设置key
OK
127.0.0.1:6379[3]> select 6 #切换到数据库6
OK
127.0.0.1:6379[6]> get name #查不到key
(nil)
127.0.0.1:6379[6]> select 3 #切换到数据库3 才能看到刚才写入的数据
OK
127.0.0.1:6379[3]> get name
"panlin"
127.0.0.1:6379[3]> 
127.0.0.1:6379[3]> keys * #查看所有的key
1) "name"
127.0.0.1:6379[3]> keys * #查看所有keys
1) "name"
127.0.0.1:6379[3]> flushdb #清空本数据库
OK
127.0.0.1:6379[3]> keys * #清空完成
(empty array)
127.0.0.1:6379[3]> 
127.0.0.1:6379> keys * #0号数据库的内容 包含压测写入的数据
1) "mylist:{tag}"
2) "counter:{tag}:__rand_int__"
3) "key:{tag}:__rand_int__"
127.0.0.1:6379> select 3 #切换到3号数据库
OK
127.0.0.1:6379[3]> FLUSHALL # 清空所有数据库 
OK
127.0.0.1:6379[3]> SELECT 0 #切换回0号数据库
OK
127.0.0.1:6379> keys * #同样也被清空了
(empty array)
127.0.0.1:6379> 

关于redis的一些问题

什么是redis

Redis(Remote Dictionary Server ),即远程字典服务。

是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis能做什么用

  1. 内存存储、持久化,内存是断电即失的,所以需要持久化(RDB、AOF)
  2. 用于访问数据库的缓冲
  3. 发布订阅系统
  4. 地图信息分析
  5. 计时器、计数器(eg:浏览量)
  6. 。。。

redis特性

  1. 多样的数据类型

  2. 持久化

  3. 集群

  4. 事务

  5. ...

    redis为什么这么快

  6. redi是单线程的

  7. redis的瓶颈不是cpu 瓶颈来源于是带宽和内存

  8. 单线程为什么还快

​ 多线程的程序 因为有cpu 上下文切换 和cpu的性能有关

redis 所有的数据都放到内存中 单线程没有上下文切换

对于内存系统 没有上下文切换效率个更高 多次读写都在一个cpu上进行。

本节命令

命令不区分大小写

./redis-server #启动服务

redis-cli -p 6379 #通过客户端连接redis

redis-benchmark #redis性能测试工具

shutdown #关闭redis

exit #退出redis-clikeys * #查看所有keys

flushdb #清空本数据库

select 3 #切换到3号数据库

set name panlin #数据库3中设置key

get name #查看当前数据库的key

posted @ 2022-04-12 17:37  机猿巧合  阅读(53)  评论(0编辑  收藏  举报