Day29 PythonWeb全栈课程课堂内容

1.Redis 前言介绍

1.1 磁盘和内存的介绍

  • 磁盘:利用磁记录技术存储数据的存储器。磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘(Floppy Disk,简称软盘),如今常用的磁盘是硬磁盘(Hard disk,简称硬盘)。

  • 内存:内存(Memory)是计算机的重要部件之一,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成,CPU将结果传送出来。内存的运行也决定计算机整体运行快慢的程度。内存条由内存芯片、电路板、金手指等部分组成。

1.2 Redis背景

  • 随着互联网+大数据时代的来临,传统的关系型数据库已经不能满足中大型网站日益增长的访问量和数据量。这个时候就需要一种能够快速存取数据的组件来缓解数据库服务I/O的压力,来解决系统性能上的瓶颈。

1.3 Redis发展历史

  • 在互联网+大数据时代来临之前,企业的一些内部信息管理系统,一个单个数据库实例就能满足系统的需求单数据库实例

  • 随着系统访问用户的增多,数据量的增大,单个数据库实例已经满足不了系统的读取需求。缓存(memcache)+单数据库实例

  • 缓存可以缓解系统的读取压力,但是数据量的写入压力持续增大。缓存+主从数据库+读写分离

  • 数据量再次增大,读写分离以后,主数据库的写库压力出现瓶颈。缓存+主从数据库集群+读写分离+分库分表

  • 互联网+大数据时代来临,关系型数据库不能很好的存取一些并发性高,实时性高的,并且数据格式不固定的数据。nosql(no only sql)+主从数据库集群+读写分离+分库分表

1.4 Redis 是什么?

  • 即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
  • 关系型数据库:MySQL、oracle、SqlServer

1.5 Redis 作用

  • 快速存取

1.6 Redis 使用

  • 官网地址:https://redis.io/ https://redis.cn/

  • 命令地址:http://doc.redisfans.com/

  • Redis的五大数据类型以及应用场景:string字符串、list列表、set合集、hash哈希、zset有序集合。

1.7 Redis 安装和启动

  • 安装网址:https://redis.io/download 。

  • Ubuntu安装(源码安装)

    • From source code

      Download, extract and compile Redis with:

    $ wget https://download.redis.io/releases/redis-6.2.1.tar.gz
    $ tar xzf redis-6.2.1.tar.gz
    $ cd redis-6.2.1
    $ make
    

    ​ The binaries that are now compiled are available in the src directory. Run Redis with:

    $ src/redis-server
    

    ​ You can interact with Redis using the built-in client:

    $ src/redis-cli
    redis> set foo bar
    OK
    redis> get foo
    "bar"
    
    • From the official Ubuntu PPA

      You can install the latest stable version of Redis from the redislabs/redis package repository. Add the repository to the apt index, update it and install:

    $ sudo add-apt-repository ppa:redislabs/redis
    $ sudo apt-get update
    $ sudo apt-get install redis
    
    • From Snapcraft

      You can install the latest stable version of Redis from the Snapcraft marketplace:

    $ sudo snap install redis
    

    ​ Are you new to Redis? Try our online, interactive tutorial.

1.8 Redis 配置文件

在这里插入图片描述

  • redis.conf是redis的配置文件。查看配置文件

    $ sudo vim redis.conf 
    
    
    当redis作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面。
    daemonize no
    
    监听端口号,默认为 6379,如果你设为 0 ,redis 将不在 socket 上监听任何客户端连接。
    port 6379
    
    设置数据库的数目。
    databases 16
    
    根据给定的时间间隔和写入次数将数据保存到磁盘
    下面的例子的意思是:
    900 秒内如果至少有 1 个 key 的值变化,则保存
    300 秒内如果至少有 10 个 key 的值变化,则保存
    60 秒内如果至少有 10000 个 key 的值变化,则保存
     
    save 900 1 900秒内有1k发生变化就保存在磁盘内
    save 300 10 300秒内有10k发生变化就保存在磁盘内
    save 60 10000 960秒内有10000k发生变化就保存在磁盘内
    
    监听端口号,默认为 6379,如果你设为 0 ,redis 将不在 socket 上监听任何客户端连接。
    port 6379
    
    Redis默认只允许本地连接,不允许其他机器连接
    bind 127.0.0.1
    
  • 更多配置文件:https://www.cnblogs.com/kreo/p/4423362.html

1.9 Redis 数据库简单使用

DBSIZE      查看当前数据库的key数量
keys *      查看key的内容
FLUSHDB     清空当前数据库的key的数量
FLUSHALL    清空所有库的key(慎用)
exists key   判断key是否存在
help 指令		指令查询

2. Redis 常用五大数据类型

2.1 Redis-string

  • string 是 Redis最基本的类型,一个 key 对应一个 valuestring可以包含任何数据,最大不能超过512M。
  1. set/get/mset/mget/append/del/strlen

    set  ---- 设置值
    get  ---- 获取值
    mset  ---- 设置多个值
    mget  ---- 获取多个值
    append ---- 添加字段
    del ---- 删除
    strlen ---- 返回字符串长度
    

在这里插入图片描述

  1. incr/decr/incrby/decrby

    incr ---- 增加
    decr ---- 减少
    incrby  ----- 制定增加多少
    decrby  ----- 制定减少多少
    

在这里插入图片描述

  1. getrange/setrange

    getrange ---- 获取指定区间范围内的值,类似between....and的关系
    setrange ---- 代表从第几位开始替换,下脚本从零开始
    从0 -1表示全部
    

在这里插入图片描述

  1. expire

    expire --设置有效时间 (用于获取手机验证码)
    expire key seconds
    

在这里插入图片描述

2.2 Redis-list

  • 列表是简单的字符串列表,按照插入顺序排序,可以添加一个元素列表的头部(左边)或者尾部(右边)它的底层实际是个链表

在这里插入图片描述

1.lpush/rpush/lrange

lpush/rpush/lrange ---- 从左/从右/获取指定长度
lpush list01  1 2 3 4 5  倒序排列
rpush list02  1 2 3 4 5  正序排列
lrange  list01  0  -1  获取list01 中的所有值

在这里插入图片描述

2.lpop/rpop

lpop/rpop ---- 移除最左/最右
lpop list01 删除元素5
rpop list01 删除元素1

在这里插入图片描述

3.lindex,按照索引下标获得元素(从上到下)

lrange list01 0 -1
lindex list01 1

在这里插入图片描述

4.llen,求列表长度

llen list01

在这里插入图片描述

5.lrem key

删N个value
lpush list03 a b c d e f
lrem list03 1 a   在list01中删除1个a

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

6.ltrim key

ltrim ---- 开始index结束index,截取指定范围的值后在赋值给key
ltrim list04 0 2    截取list04 从0到2的数据在赋值给list01

在这里插入图片描述

7.rpoplpush list01 list02 将list01中最后一个压入list02中第一位

lrange list01 0 -1
lrange list02 0 -1
rpoplpush list01 list02

在这里插入图片描述

8.lset key index value

lset list01 0 x     将list02中第一位换成x

在这里插入图片描述

9.linsert key before/after

linsert list02 before x php  在x之前加字段php

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值