目录

1. Redis 的介绍

2. Redis 的配置和管理

3. Redis支持的数据结构

3. 关于 Redis 数据库的命令操作


1. Redis 的介绍

  • 先了解一下什么是NoSQL?

1. NoSQL 只是一种概念,泛指非关系型的数据库;通常描述为: non-relational 、Not Only SQL。

2. 关于数据库两种不同的概念简介:

MySQL、Oracle、SQLServer、...

key-value 存储数据。比如:我们今天所讲的 Redis

3. key-value 存储数据的结构跟传统关系数据中的关系表完全不同。

4. 不支持 SQL 语法。

5. NoSQL类型的数据库没有一种通用的语言,每种NoSQL数据库都有自己的API和语法,以及擅长的业务场景。

Redis:用作数据库、缓存和消息队列;

Mongodb:用作文档存储;

 Hbase hadoop:用作大数据处理。

  • NoSQL的优点:  * * * * *

1. 结构简单,易扩展

2. 大数据量,高性能

  • NoSQL和SQL比较:

1. 使用场景不同:NoSQL 适用于关系简单的数据场景;SQL 适用于关系复杂的数据场景。

2. 存储数据模型不同:NoSQL 数据模型为:key-value ;SQL 关系式模型: 数据表。

3. 读取性能不同: NoSQL读写性能 优于 SQL。

  • Redis 简介:

1. 开源,内存型的结构存储系统。

2. 用于 数据库缓存 和 消息中间件。

3. 支持多类型数据结构,如: 字符串(strings)散列(hashes)列表(lists)集合(sets)有序集合(sorted sets)

4. 键值对存储方式

5. 属于 NoSQL 中的一员

  • Redis 的特点

1. Redis支持存储的数据类型丰富:字符串、散列、列表、集合、有序集合。

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

3. Redis支持数据的备份:即master-slave模式(主从模式)的数据备份。

4. Redis读写性能极高:读的速度是110000次/s,写的速度是81000次/s。

5. 原子性:Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

  • Redis 的应用场景

1. 缓存:提升网站访问速度,减轻数据库的压力。

2. 购物车: 数据量不大,关系简单,可以基于Redis实现。

3. 消息系统: 消息队列是大型网站必用中间件,主要用于业务解耦、流量削峰及异步处理实时性低的业务。

4. 计数器: 如电商网站的浏览量、网站视频的播放量等。保证数据的实时性,每次浏览后都要 +1。


2. Redis 的配置和管理

  • 配置

配置文件位置:/etc/redis/redis.conf

编辑配置文件:sudo vim /etc/redis/redis.conf

建议修改项:
               注释掉bind:# bind 127.0.0.1
               关闭保护模式:protected-mode no
               后台运行:daemonize yes

重启redis:
              查看进程pid:ps aux | grep redis-server
              杀掉进程:方法一:sudo kill -9 pid 

                        方法二:sudo service  redis_6379 stop
                               方法三:redis-cli shutdown

              启动redis:方法一:sudo redis-server /etc/redis/redis.conf

sudo service redis_6379 start

  • 管理

       必须先开启服务端:
              先查看服务端是否开启:ps aux | grep redis-server
              如果服务端已开启就不管
              如果没有开启就开启:sudo redis-server /etc/redis/redis.conf
       然后再使用 redis-cli 登录到 redis-server
              使用默认的IP和端口访问:redis-cli
              使用真实IP访问: redis-cli -h ubuntu 真实IP


3. Redis支持的数据结构

  • 0. Redis的数据模型是:key-value
    value可以是以下这些类型
    1. String:字符串
    2. hash:散列、hash表
    3. list:列表
    4. set:无序集合
    5. zset:有序集合
  • String:字符串
        value ===> "n74y23847yshcb"
        "key": "n74y23847yshcb"
  •  hash:散列、hash表

    value ===> field val
            value ===> "name" "Lisi"
            "key": "name" "Lisi"

  • list:列表
        value ===> "1" "2" "3"
        "key": "1" "2" "3"
  • set:无序集合
        vlaue ===> "1" "2" "3"
        "key": "1" "3" "2"
  • zset:有序集合
        vlaue ===> "1" score "2" score "3" score
        "key": "1" score "2" score "3" score

3. 关于 Redis 数据库的命令操作

1. String 类型 常见操作 ("key": "n74y23847yshcb")

set:一次保存一个键值

命令:  set key value

127.0.0.1:6379[1]> SET name lin
OK

mset:一次性保存一个键值或者多个键值

命令: mset key1 value1 key2 value2 [key3 value3 ......]

 

get:一次读取一个键值

命令: get key value

 

mget:一次读取一个键值或者多个键值

命令:mget key1 key2 [key3 ......]
    

setex:存储带有有效期的字符串

命令:setex key seconds value