【Redis】2、入门:概述、图文详解Windows和Linux下安装、测试性能、基本命令

1、概述

Redis是什么?

RedisRemote Dictionary Server ),即远程字典服务。

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

与memcached一样,为了保证效率,数据都是缓存在内存中

区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis能该干什么?

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

特性

  • 多样的数据类型

  • 持久化

  • 集群

  • 事务


2、环境搭建

官网:https://redis.io/

中文站:http://redis.cn/

推荐使用Linux服务器学习。

windows版本的Redis已经停更很久了…

1)Windows安装

(1)下载

地址:https://github.com/dmajkic/redis

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(2)解压安装包

直接解压到目标文件夹下即可

在这里插入图片描述

(3)开启redis-server.exe

双击 redis-server.exe 即可

在这里插入图片描述

(4)启动redis-cli.exe测试

直接双击 redis-cli.exe

在这里插入图片描述

2)Linux安装

(1)下载安装包

下载地址:https://redis.io/

redis-6.2.6.tar.gz

在这里插入图片描述

(2)解压安装包

程序一般放在 /opt 目录下

tar -zxvf redis-6.2.6.tar.gz

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(3)基本环境安装

yum install gcc-c++

在这里插入图片描述

# 进入redis目录下执行
make

在这里插入图片描述

make install

在这里插入图片描述

(4)默认安装路径

/usr/local/bin

在这里插入图片描述

(5)配置

将redis的配置文件从解压目录复制到 程序安装目录 /usr/local/bin/myconfig

cp /opt/redis-6.2.6/redis.conf myconfig

在这里插入图片描述

redis默认不是后台启动的,需要修改配置文件!修改 myconfig/redis.conf 配置文件

在这里插入图片描述

(6)启动

通过定制的配置文件启动redis服务

redis-server myconfig/redis.conf

(7)测试连接

使用redis-cli连接指定的端口号测试,Redis的默认端口6379

redis-cli -p 6379

ping

在这里插入图片描述

(8)查看redis进程是否开启

# 查看包含redis关键字的父进程
ps -ef|grep redis

在这里插入图片描述

(9)关闭Redis服务 shutdown

在这里插入图片描述

(10)再次查看进程是否存在

在这里插入图片描述

3、测试性能

Redis官方提供的性能测试工具 redis-benchmark ,参数选项如下:

在这里插入图片描述

简单测试

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

在这里插入图片描述

4、基础知识

默认有16个数据库;默认使用的是第0个;16个数据库为:0 ~ 15

常用基本命令(Redis不区分大小写命令)

  • config get databases 查看数据库数量
  • select n 切换数据库
  • dbsize 查看数据库大小
  • keys * 查看当前数据库中所有的key
  • flushdb 清空当前数据库中的键值对
  • flushall 清空所有数据库的键值对
# 命令行查看数据库数量databases
127.0.0.1:6379> config get databases 
1) "databases"
2) "16"

# 切换数据库 DB 8
127.0.0.1:6379> select 8
OK

# 查看数据库大小
127.0.0.1:6379[8]> dbsize 
(integer) 0

# 不同数据库之间 数据是不能互通的,并且dbsize 是根据库中key的个数。
127.0.0.1:6379> set name sakura 
OK
127.0.0.1:6379> SELECT 8
OK
# db8中并不能获取db0中的键值对。
127.0.0.1:6379[8]> get name 
(nil)
127.0.0.1:6379[8]> DBSIZE
(integer) 0
127.0.0.1:6379[8]> SELECT 0
OK
127.0.0.1:6379> keys *
1) "counter:__rand_int__"
2) "mylist"
3) "name"
4) "key:__rand_int__"
5) "myset:__rand_int__"

# size和key个数相关
127.0.0.1:6379> DBSIZE 
(integer) 5

Redis是单线程的,基于内存操作

所以Redis的性能瓶颈不是CPU,而是机器内存和网络带宽。

那么为什么Redis的速度如此快呢,性能这么高呢?QPS达到10W+

Redis为什么单线程还这么快?

  • 误区1:高性能的服务器一定是多线程的?
  • 误区2:多线程(CPU上下文会切换!)一定比单线程效率高!

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

土味儿~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值