Redisj的安装与基本使用

Redisj的安装与基本使用

一、概述

Redis是什么?

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

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

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

Redis能该干什么?

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

特性

  1. 多样的数据类型

  2. 持久化

  3. 集群

  4. 事务

二、安装

官网
中文网
在这里插入图片描述

在这里插入图片描述

注意:Wdinow在 Github上下载(停更很久了!)

Windows安装

下载安装包:https://github.com/dmajkic/redis/releases

  1. 解压安装包
    在这里插入图片描述

  2. 开启redis-server.exe,双击运行服务即可!
    在这里插入图片描述

  3. 启动redis-cli.exe测试

ping测试连接
在这里插入图片描述

Linux安装

  1. 下载安装包!redis-5.0.8.tar.gz

  2. 解压Redis的安装包!程序一般放在 /opt 目录下

  3. 进入解压后的文件,可以看到我们redis的配置文件
    在这里插入图片描述

  4. 基本环境安装

    yum install gcc-c++
    # 然后进入redis目录下执行
    make
    make install
    

在这里插入图片描述
在这里插入图片描述

  1. redis默认安装路径 /usr/local/bin
    在这里插入图片描述

  2. 将redis的配置文件复制到 程序安装目录 /usr/local/bin/cjzredisconfig

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

    在这里插入图片描述
    改为yes

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

在这里插入图片描述

  1. 使用redis-cli连接指定的端口号测试,Redis的默认端口6379
    在这里插入图片描述

  2. 查看redis进程是否开启
    在这里插入图片描述

  3. 关闭Redis服务 shutdown
    在这里插入图片描述

  4. 再次查看进程是否存在

三、测试性能

redis-benchmark: Redis官方提供的性能测试工具,参数选项如下:
在这里插入图片描述

简单测试:

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

在这里插入图片描述
在这里插入图片描述

四、基础知识

redis默认有16个数据库
在这里插入图片描述

默认使用的第0个;

16个数据库为:DB 0~DB 15
默认使用DB 0 ,可以使用select n切换到DB n,dbsize可以查看当前数据库的大小,与key数量相关。

127.0.0.1:6379> config get databases # 命令行查看数据库数量databases
1) "databases"
2) "16"

127.0.0.1:6379> select 3 # 切换数据库 DB 3
OK
127.0.0.1:6379[3]> dbsize # 查看数据库大小
(integer) 0

# 不同数据库之间 数据是不能互通的,并且dbsize 是根据库中key的个数。
127.0.0.1:6379> set name latte 
OK
127.0.0.1:6379> SELECT 3
OK
127.0.0.1:6379[3]> get name # db3中并不能获取db0中的键值对。
(nil)
127.0.0.1:6379[3]> DBSIZE
(integer) 0
127.0.0.1:6379[3]> SELECT 0
OK
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> DBSIZE # size和key个数相关
(integer) 5

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

flushdb:清空当前数据库中的键值对。

flushall:清空所有数据库的键值对。

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

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

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

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

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

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

posted @ 2021-03-03 00:02  Latteitcjz  阅读(152)  评论(0)    收藏  举报