zoukankan      html  css  js  c++  java
  • redis——redis入门(一)

     一、什么是redis?

    1.简介

    1 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。
    2 Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI. 用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API
    3 Redis是存储数据的软件(数据库),这个和语言无关,是一种纯内存数据库(所有数据都存在内存中)
      速度快,支持的数据类型多(5大数据类型:字符串、列表、字典、集合、有序集合)
    4 是cs架构,key-value存储(没有表,各种关系)
    5 redis--->是存储数据的软件,跟语言无关,纯内存数据库(所有数据都放在内存中)
    6 可以在不同平台编译---》编译成可执行文件---》执行
    
    

    2.有5种数据类型

    它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, 
    bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询

    3.Memcached 和 Redis 比较

    Redis是:单线程+单进程,数据类型丰富(只针对于Redis6.0以下)
    Memcache:多线程+多进程,但是 数据类型单一

    4.对Windows不支持

    Redis是用C写的一个开源软件,早期发行2万3千多行,对Windows不支持。
    目前最新版本 6.0.6
    但是!Windows官方对redis进行了编译,可以允许在Windows上运行(仅支持3.X版本)

    5.官网

    http://redis.cn/

    6. 造成入侵redis的可能原因

    root用户 +弱口令

    二.Redis的特性(8个)

    1.速度快

    10W OPS(每秒操作数10W,实测6W左右)
    数据存在内存中(内存读写速度高达40~50GB/s)
    c语言实现,单线程模型

    1.1 redis为什么单线程,单进程速度这么快?(不会有人问了,6.0之后就变成多线程了,这个针对6.0之前的单线程单进程)

    -快的程度:10w,生产单机6w左右
    -1 纯内存数据库,读写速度快
    -2 io多路复用,用的是epoll模型(只在linux上支持),windows上支持select
    -3 单线程单进程,避免了线程间切换

    2.持久化

    Redis有RDB和AOF机制
    
    RDB其实就是把数据以快照的形式保存在磁盘上。什么是快照呢,你可以理解成把当前时刻的数据拍成一张照片保存下来。
    
    全量备份总是耗时的,有时候我们提供一种更加高效的方式AOF,工作机制很简单,redis会将每一个收到的写命令都通过write函数追加到文件中。通俗的理解就是日志记录。

    3.多种数据结构

    str:字符串类型 - 接口缓存
    list:列表 - 分布式
    hash:哈希(相当于Python中的字典) - 缓存
    set:集合 - 去重
    zset:有序的 - 排行榜

    4.支持多种编程语言

    基于TCP通信协议,各大编程语言都支持

    5.功能丰富

    发布订阅(消息) Lua脚本,事务(pipeline)等

    6.简单

    源代码几万行,不依赖外部库

    7.主从复制

    主服务器和从服务器,主服务器可以同步到从服务器中

    8.高可用和分布式

    2.8版本以后使用redis-sentinel 哨兵支持高可用
    
    3.0版本以后支持分布式

    三:Redis的典型使用场景

    1.缓存系统:

    使用最广泛的就是缓存,通常用来做缓存数据库

    2.计数器:

    网站访问量,转发量,评论数(文章转发,商品销量,单线程模型,不会出现并发问题)

    3.消息队列:

    发布订阅,阻塞队列实现(简单的分布式,blpop:阻塞队列,生产者消费者)

    4.排行榜:

    有序集合(阅读排行,点赞排行,推荐(销量高的,推荐))

    5.社交网络:

    很多特效跟社交网络匹配,粉丝数,关注数

    6.实时系统:

    垃圾邮件处理系统,布隆过滤器
     
  • 相关阅读:
    ubuntu系统安装初始化脚本
    21_多线程
    20_IO
    19_异常
    18_集合
    17_内部类和常用类
    16_接口
    15_abstract,static,final
    14_面向对象
    13_数组
  • 原文地址:https://www.cnblogs.com/guojieying/p/14245576.html
Copyright © 2011-2022 走看看