0
点赞
收藏
分享

微信扫一扫

No.2.6_3 Reids概述

芭芭蘑菇 2022-02-21 阅读 36

相关链接

  • CSDN_GroupiesM 笔记整理
  • redis官网
  • redis中文网

目录


一、Redis概述

Redis是什么

  Redis: (Remote Dictionary Server),即远程字典服务。是一个开源的使用ANSI C语言编写、支持网络,可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

  免费和开源,是当下最热门的NoSQL技术之一,也被人们称为结构化数据库。


Redis能干嘛

  1、内存存储、持久化,内存中是断电即丢失的,所以说持久化很重要( rbdaof )
  2、效率高,可以用于高速缓存
  3、发布订阅系统
  4、地图信息分析
  5、计时器、计数器(文章浏览量)


Redis特性

  1、多样的数据类型
  2、支持持久化
  3、支持集群
  4、支持事务


链接

1、redis官网:https://redis.io
2、redis中文网:http://www.redis.cn
3、下载地址:通过官网下载即可


二、Redis安装


2.1 Windows安装

Step1: 下载安装包: https://github.com/dmajkic/redis
Step2: 下载完毕得到压缩包:

Step3: 解压到自己电脑上的环境目录下,Redis十分小,只有5M

Step4: 开启Redis,双击运行服务端(redis-server.exe)即可(默认 port : 6379)

Step5: 使用Redis客户端(redis-cli.exe)来连接 Redis(保持服务端开启)

注意:Winodows下使用确实简单,但是 Redis 推荐使用Linux环境开发使用 => http://www.redis.cn/topics/introduction

2.2 MacOS 安装


Step1: 下载安装包
  redis官网 http://redis.io/download
  redis中文网 http://www.redis.cn/download (中文网的redis版本会落后一些)

Step2: 下载完毕得到压缩包:

Step3: 解压到自己电脑上的环境目录下

Step4: 打开Terminal(Iterm),准备开始编译

Step5: 测试编译:在目录内输入sudo make test,并暗文输入密码(锁屏密码),过程约5分钟

Step6: 编译安装:在目录内继续输入sudo make install,再次输入密码(锁屏密码)

Step7: 进入src目录

Step8: Redis根目录下(我的是 /Users/d/develop/redis-6.2.6 )修改 配置文件 vim redis.conf (修改前记得备份 cp redis.conf redis.conf-bak

Step9: 开启Redis,双击运行服务端(redis-server)即可(默认 port : 6379)

Step10: 使用Redis客户端(redis-cli)来连接 Redis(保持服务端开启)

Step11: 关闭Redis,双击运行客户端(redis-cli),输入shutdown 关闭服务端,quit 退出客户端

备注: 通过命令行查看redis运行情况 ps -ef | grep redis

2.3 Linux 安装


Step1: 下载安装包
  redis官网 http://redis.io/download
  redis中文网 http://www.redis.cn/download (中文网的redis版本会落后一些)

Step2: 下载完毕得到压缩包:

Step3: 上传至linux服务器自己的安装目录

Step4: 解压文件: tar -zxvf redis-6.2.6.tar.gz

Step5: 进入解压后的文件,可以看到redis的配置文件 ls

Step6: 基本环境安装,由于redis是c++写的,此步骤用于安装c++环境(macOS自带gcc所以可以直接编译安装)

# 安装gcc
yum install gcc-c++
# 编译:按照makefile脚本对整个项目的各个文件进行分别编译的链接
make
# 安装:从Makefile中读取指令,安装到指定的位置。(需要root权限,往系统写入文件)
make install

Step7: redis的默认安装路径 /usr/local/bin

Step8: 参考MacOS安装方式,修改配置文件(Step8),启动服务端(Step9),启动客户端(Step10)

Step9: 后面会使用单机多Redis启动集群测试


三、性能测试(redis-benchmark)


redis-benchmark 是一个官方自带的压力测试工具。

使用方式: redis-benchmark 命令参数

序号选项描述默认值
1-h指定服务器主机名127.0.0.1
2-p指定服务器端口6379
3-s指定服务器 socket
4-c指定并发连接数5
5-n指定请求书10000
6-d以字节的形式指定 SET/GET 值的数据大小3
7-k1=keep alive 0=reconnect
8-rSET/GET/INCR 使用随机 key,SADD 使用随机值
9-P通过管道传输 <numreq>请求1
10-q强制退出 redis,仅显示 query/sec 值
11–csv以 CSV 格式输出
12-l (L的小写字母)生成循环,永久执行
13-t仅以逗号分割的测试命令列表
14-i (i的大写字母)Idle模式。金打开 N 个 idle 连接并等待

简单测试一下(先开启服务端 redis-server)

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

查看分析: 对各种方法 GET、SET、INCR 分别进行性能测试


四、基础知识

Reids默认有16个数据库

默认是用的是0个,可以使用 select 数字 切换数据库,dbsize 查看db大小
在这里插入图片描述

keys * 查看当前数据库所有的key

flushdb:清空当前数据库 flushAll:清空所有数据的key

  Redis3.0 中已经逐渐弱化这个功能,例如 Redis 的分布式实现 Redis Cluster 只允许使用0号数据库,只不过为了向下兼容老版本的数据库功能,该功能没有完全废弃掉。关于废弃掉多数据库功能的原因:
  1、Redis是单线程的。如果使用多个数据库,那么这些数据库仍然是使用一个 CPU ,彼此之间还是会受到影响的。
  2、多数据库的使用方式,会让调试和运维不同业务的数据库变的困难,假如有一个慢查询存在,依然会影响其他数据库,这样会使得别的业务方定位问题非常的困难。
  3、部分Redis的客户端不支持这种方式。即使支持,在开发的时候来回切换数字形式的数据库,很容易弄乱。

  建议如果要使用多个数据库功能,完全可以在一台机器上部署多个 Redis 实例,彼此用端口来做区分,因为现代计算机或者服务器通常是有多个 CPU 的。这样既保证了业务之间不会受到影响,又合理地使用了 CPU 资源。


Reids是单线程的

  Redis是基于内存操作,CPU不是Redis性能瓶颈。Redis的瓶颈是根据机器的内存和网络带宽,可以使用单线程来实现。

Redis 为什么单线程还这么快?
误区1:高性能的服务器一定是多线程的
误区2:多线程一定比单线程效率高

速度: CPU>内存>硬盘
核心: Redis 是将所有的数据放在内存中的,所以说使用单线程去操作效率就是最高的,多线程(CPU上下文会切换:耗时的操作),对于内存系统来说,如果没有上下文切换效率就是最高的。多次读写都是在一个CPU上,在使用内存的情况下,单线程就是最佳方案。


22/02/21

M

举报

相关推荐

docker 官方 reids

Reids应用

reids为什么快

假期2.6

自学reids第二天

0 条评论