Redis_入门

redis入门

1. 概述

1. 什么是Redis

  • Redis = Remote Dictionary Server 即远程字典服务

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

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

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

  • Redis支持数据的备份,即master-slave模式的数据备份。

2. Redis能干什么

  1. 内存存储, 持久化 ==== 因为内存中是断电即失, 所以说持久化很重要(rdb, aof)
  2. 效率高, 可以用于高速缓存
  3. 发布订阅系统
  4. 地图信息分析
  5. 计时器, 计数器(可以用来实现浏览量的统计)
  6. ......

3. Redis的特性

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

2. 安装

1. Windows版本

在Github上下载, Redis推荐都是在Linux服务器上搭建的

下载地址为 https://github.com/tporadowski/redis/releases

得到压缩包, 解压到自己电脑的环境目录下即可

image-20201010094434260

开启Redis, 双击运行server即可

image-20201010094543467

默认端口是6379

使用Redis客户端(cli)连接Redis, 此时服务端不要关闭

image-20201010095007188

windows下使用确实简单, 但是Redis推荐我们使用linux去开发

image-20201010100809903

2. 在Linux上安装

安装过程略, 我们安装在 /opt 目录下, 将一份配置文件拷贝到 /usr/local/bin/myconfig 目录下, 以后修改这里的配置文件就可以了

启动Redis 在 /usr/local/bin 目录下, 执行 redis-server myconfig/redis.conf 使用/myconfig中的配置文件启动

启动客户端测试 redis-cli -p 6379

image-20201020172130915

查看redis服务是否开启

image-20201020172319386

关闭redis服务 shutdown

3. 测试性能

redis-benchmark 是一个压力测试工具

测试100个并发连接, 1s发送100000个请求

redis- benchmark -h Localhost -p 6379 -C 100 -n 100000

image-20201021101934594

参数解释

  • 对 100000 请求进行写入测试
  • 100 个并发客户端
  • 每次写入 3 个字节
  • 只有一台服务器来处理这些请求, 单机性能

4. 基础知识

  • redis默认有16个数据库, 默认使用的是第0个

    • 可以使用select进行切换数据库
    • image-20201021102525376
  • 查看数据库大小 dbsize

    • image-20201021102712400
  • **查看数据库所有的key keys ***

    • image-20201021102809099
  • 清除当前数据库 flushdb

    • image-20201021102853651
  • 清除全部数据库 flushall

    • image-20201021103034230

5. Redis是单线程的

  • Redis是很快的, 官方表示, Redis是基于内存操作, CPU不是Redis性能瓶颈, Redis的瓶颈是根据机器的内存和网络带宽, 因此使用单线程来做
  • 为什么单线程还这么快
    • Redis是C语言写的, 官方提供的数据为 100000+ 的QPS, 完全不比同样使用kv的Memecache差!
    • 误区1 : 高性能的服务器一定是多线程的
    • 误区2 : 多线程一定比单线程效率高 (由于CPU上下文会切换, 不一定比单线程高)
    • 核心: redis是将所有的数据全部放在内存中, 所以说使用单线程去操作, 效率就是最高的! 对于内存系统来说, 如果没有上下文切换效率就是最高的! 多次读写都是在一个CPU上的, 在内存情况下这个就是最佳的解决方案
原文地址:https://www.cnblogs.com/wang-sky/p/13851828.html