Day29 PythonWeb全栈课程课堂内容

  • 1.Redis 前言介绍
    • 1.1 磁盘和内存的介绍
    • 1.2 Redis背景
    • 1.3 Redis发展历史
    • 1.4 Redis 是什么?
    • 1.5 Redis 作用
    • 1.6 Redis 使用
    • 1.7 Redis 安装和启动
    • 1.8 Redis 配置文件
    • 1.9 Redis 数据库简单使用
  • 2. Redis 常用五大数据类型
    • 2.1 Redis-string
    • 2.2 Redis-list

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 6379Redis默认只允许本地连接,不允许其他机器连接
    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

Day29 PythonWeb全栈课程课堂内容相关推荐

  1. Day7 PythonWeb全栈课程课堂内容

    文章目录 1. 黏包 2. HTTP 3. 查看HTTP协议的通信过程 4. 静态web服务器 1. 黏包 当发送网络数据时,tcp协议会根据Nagle算法将时间间隔短,数据量小的多个数据包打包成一个 ...

  2. Bootstrap实战练习---Web全栈课程体系(表格+巨幕)

    Bootstrap实战练习-Web全栈课程体系(表格+巨幕) 原网页效果图 连接 我的网页效果 -我的代码 <!DOCTYPE html> <html> <head> ...

  3. 石家庄python开发_石家庄PythonWeb全栈开发工程师修炼

    [课程介绍] 课程以python语言为主导,进行web服务相关的全栈开发,包含后端服务器开发,部署,监控:web前端开发,前后端不分离模板模式开发,前后端分离,单独前端部署方案.课程涉及到的知识点有: ...

  4. java 前端工作内容_java前端、java后端、java全栈工作主要内容是什么?哪个薪资高?...

    摘要 最近,听了一场关于java全栈工程师职位的简介说明,里面很清楚的说明了一下前端,后端,全栈都是做什么工作的.其实,想做这个行业,就应该了解职能以及技能需求,这样学习才能更高效.我知道一些刚刚入行 ...

  5. pythonweb全栈开发_Web全栈开发穿插路程(python+js)

    简介: 穿插路程,是指快去快回,来去一阵风,走的快,走马观花,没有细品.细品那就要慢慢熬功夫喽. 1.完成后的效果是: 用户访问入口页面,录入信息,提交后结果以逐步添加的形式展现在页面上,可以对历史输 ...

  6. PythonWeb全栈开发介绍

    文章目录 1 什么是Web开发 2 Python Web开发技能点 3 什么是全栈开发 4 技术选型如何开始 1 什么是Web开发 权威定义 Web(World Wide Web)即全球广域网也称为万 ...

  7. 【Ruby on Rails全栈课程】4.3 评论功能实现(二)--创建帖子详情页面

    1.完善样式,用来显示帖子详情以及评论信息等,编辑app/assets/stylesheets/posts.scss文件,在原有代码下面添加代码: .head {font-size: 18px;fon ...

  8. pythonweb全栈开发_Python web全栈学习路线

    模块 内容 Linux 运维 Linux 安装, 网络基础知识点, ISO 七层模型, Linux 基本命令, Linux 文件系统, Linux 常用命令, Linux 权限管理, Linux 用户 ...

  9. 【Ruby on Rails全栈课程】4.1 点赞功能

    1.功能描述: (1)一个用户对同一帖子只能点赞一次,点击第二次是取消赞 (2)用户不刷新页面的时候,点赞时当前页面相应贴子的点赞数+1,图标变成fa-thumbs-up,取消赞时当前页面相应帖子的点 ...

最新文章

  1. ClickHouse留存分析工具十亿数据秒级查询方案
  2. PIC18F452之1602自定义字符
  3. springMVC问题XXX is not mapped [from XX]或者Unknown entity: com.spring.main.pojo.Person
  4. 中餐菜单分类名称创意_(全)西餐厨师岗位分类、薪资待遇与职责介绍
  5. (87)FPGA锁存器与触发器-面试必问(十一)(第18天)
  6. 你还在盲目做抖音吗?
  7. Linux -- 特殊权限 (转)
  8. 诺基亚接连巨亏:死守塞班难学摩托罗拉
  9. 小程序 ---- (自定义头部导航)
  10. Solaris下用Bind安装和配置DNS
  11. Clover引导简明教程
  12. 2021年上半年数据库系统工程师上午真题及答案解析
  13. VS2017社区版离线下载
  14. EDI REMADV报文详解
  15. 如何在D盘以管理员身份,运行cmd
  16. Type mismatch in key from map: expected org.apache.hadoop.io.Text, received org.apache.hadoop.io.Lon
  17. LEAK: ByteBuf.release() was not called before it‘s garbage-collected
  18. 信息安全技术——(五)信息隐藏技术
  19. Day-5 python
  20. 小 200 行 Python 代码做了一个换脸程序

热门文章

  1. 美国各州格言,大家可以看看什么词最多
  2. Python下的TK(一)概述
  3. 那个让你头大的数据结构,用Python学会变简单吗?
  4. iOS开发:简易天气预报
  5. 排查docker cpu占用过高问题
  6. Ubuntu编译内核树
  7. springboot+mysql+基于Android的校园综合服务App平台的设计 毕业设计-附源码181042
  8. eclipse新建项目没有src解决办法
  9. 央视点赞!实景三维校园,最暖心的毕业礼...
  10. java面向对象抽象类和接口