zoukankan      html  css  js  c++  java
  • 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上的, 在内存情况下这个就是最佳的解决方案
  • 相关阅读:
    Coursera, Big Data 4, Machine Learning With Big Data (week 3/4/5)
    Coursera, Big Data 4, Machine Learning With Big Data (week 1/2)
    Coursera, Big Data 3, Integration and Processing (week 5)
    Linux Socket I/O
    Coursera, Big Data 3, Integration and Processing (week 4)
    概率统计知识复习
    Coursera, Big Data 3, Integration and Processing (week 1/2/3)
    Coursera, Big Data 2, Modeling and Management Systems (week 4/5/6)
    [面试] mysql 面试题
    APP完整的启动流程
  • 原文地址:https://www.cnblogs.com/wang-sky/p/13851828.html
Copyright © 2011-2022 走看看