数据库的介绍

1:学习Redis数据库

  • 主要学习有三个关于Redis的基础知识
  • 1:Redis是什么
  • 2:为什么要要学习Redis
  • 3:如何学习Redis
  • 4:Redis的特性
  • 5:Redis的应用场景

1.1:Redis是什么

  • 首先Redis是一个高性能的开源的,C语言开发的键值对存储数据的nosql的数据库

nosql数据库

  • 是一个非关系型数据库,缓存数据库
  • 读取的速度比较快

MySQL数据库

  • 关系型数据库,用于存储持久化的数据存在大量的I/O操作
  • 由于存在大量的I/O操作所以读取的速度比较慢

1.2:为什么学习Redis

  • 1:爬虫的角度
  • 2:Wed的角度

爬虫的角度

  • 爬取的数据,可以保存为txt、html、json、csv、数据库(mongo)为这些文件
  • 分布式爬虫要学习Redis数据库的知识,学习爬虫只要学习如何把一个普通的爬虫改写为一个分布式的爬虫
  • 了解当中一些常用的命令既可以了

Wed的角度

  • 在以后专业深入的深度学习的时候在了解

1.3:如何学习Redis

  • 1:对比式学习

  • 2:了解数据库的工作原理

  • 数据库的发展历史

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

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

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

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

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

  • 3:通过解决场景中的应用,说明数据库的应用

4:Redis的特性

  • 1:速度快
  • 2:支持数据持久化存储
  • 3:支持数据类型比较多(5种主句类型)
  • 4:用于存储变化比较快的不重要的数据

5:Redis的应用场景

  • 1:用于存储抖音的点赞数
  • 2:直播平台的人数列表
  • 3:QQ或微信的消息列表

2:Redis数据库的安装

  • 1:解压压缩包
  • 2:把解压后的文件夹放到某个盘符的下面
  • 3:启动服务端:Redis -sever.exe(注意在文件的下面)
  • 4:连接客户端:Redis -cli
  • 注意:由于Redis在在现在的爬虫中用的不多,所以不用记当中的命令,用的时候找笔记就可以了

3:Redis五大命令

  • 不需要记忆,需要的时候只要找到笔记就行了

1:Redis-string数据类型

  • 是Redis最基本的命令,一个key对应一个value,可以包含任何的数据,但是最大不能超过512M

设置一个值

set key value

取出一个值

get key

设置多个值

mset key1 value1 key2 value2 ...

取多个值

mget key1 key2 ...

删除

del key

查询字符串的长度

strlen key

追加内容

append key strappend

获得一段字符串(相当于python的切片)

getrange name 0 3	取字符串0-3的字符
  • 注意:
    • Redis的下标和python的下标有一些不同,在Redis中的下标是直接在下标的地方,不是什么左闭右开的情况
    • Redis支持反向取值,也就是说可以取-1,取全部的值
    • 在Redis中可以超出字符串的索引值,这个时候会取全部的数据,超出索引值不会出现报错

转换字符串的内容

setrange name 0 abc
  • 注意:
    • 会覆盖所用的数据
    • 要想一个一个的替换,可以使用一个一个的替换

数字运算,+1

incr age
  • 存储在age中的数字的值加一

数字运算,-1

decr age
  • 存储在age中的数字的值减一

数字运算,加一个任意的数字

incrby number n
  • 存储在number中的数字加n

数字运算,减一个任意的数字

decrby number n
  • 存储在number中的数字减一个n

2:Redis-list 类型

  • 在Redis中,可以把列表想象成一个空心的竹子,增加数据可以从左添加数据,也可以从右添加数据

添加数据

lpush namelist value1 value2....
  • 从左向右添加数据value1、value2
rpush namelist value1 value2...
  • 从右向左添加数据value1、value2

查询列表中的数据

lrange namelist index1 index2
  • 查询列表下标为index1到index2的列表数据

删除列表中的数据

rpop namelist
  • 删除列表中最右边的数据
lpop namelist
  • 删除列表中最左边的数据

获取元素

index listnmae index
  • 获取列表listname中index个位置的数据元素

删除多个数据

lrem ls1 2 4
  • ls1中删除2个4

截取切片的元素赋给一个列表

ltrim ls1 0 2
  • 截取0 - 2的元素在给ls1赋值

把一个列表的最后一个元素添加另一个列表的第一个位置

rpoplpush li ls
  • 把li中的最后一个元素添加到ls中第一个位置上

替换列表中的数据

lset ls 0 1
  • 把ls中0的位置替换成1

在特定的数据前面添加数据

LINSERT ls before 1 0
  • 在1之前添加0

3:Redis-hash类型

  • 注意:hash 是一个键值对的集合(value),在hash数据类型中,一个键对用一个键值对,要获取数据需要使用键值对中的键
  • 如:key: value(key value)
  • 命令的共性,都是以H开头的

添加值

hset user id 1
  • 添加值

获取值

hget user id
  • 获取值

添加多个值

hmset users id 1 name jerry age 30
  • 添加多个值

获取多个值(方法一)

hvals users
  • 获取多个值

获取多个值(方法二)

hmget users id age name
  • 获取多个值

获取元素中的一项数据(value)

hgetall users
  • 获取每一项

获取所有的值

 hkeys users
  • 获取所有的Key

删除所有的数据

del user
  • 删除所有的数据

4:Redis-set类型

  • set类型的数据是一个无序,不重复的数据类型
  • 注意:这里所说的无序是与创建这个集合的时候相比的情况
  • Redis-set类型和python中的集合数据类型相似
  • Redis-set数据类型方法的共性,数据的开头都是以S开头的

添加数据

sadd setname value1 value2 value3 ...
  • 向数据库中创建一个Redis-set数据类型,并向该数据类型中添加value1、value2、value3等数据

查看数据

smembers setname
  • 查看Redis数据库中的nameset中的数据

验证数据是否存在

sismember nameset value
  • 如果value在nameset中存在则返回1,若不存在则返回0

查看数据的个数

scrad nameset
  • 返回nameset集合中数据的个数,返回的是一个int数据类型

删除集合中指定的数据

srem nameset value
  • 在集合nameset中删除数据value
    • 如果数据删除成功了,返回1
    • 如果数据删除失败了,也就是没有删除成功,返回0

随机获取一个集合中的数据

srndmember nameset
  • 随机获取集合nameset中的一个数据
  • 注意可以重复获取数据

随机删除一个集合中的数据

spop nameset
  • 随机删除集合nameset中的一个数据
  • 注意:不可以重复获取删除后的数据,只可以获取一个删除后的数据

删除一个集合中的数据,给另一个集合

  • 也就是电脑中常用的剪接操作
smove set1 set2 value
  • 删除set1中的value数据,然后把数据value给set2

5:Redis-zset类型

  • Redis中的有序集合,有着有序不重复的性质,由于要记录顺序所以就需要使用一个“分数”来记录数据的位置
  • 这个数据类型有点像python中的字典数据类型,当中的数据就是value,分数就是key
  • 共性:有序集合的命令都是以z开头的

添加数据

zadd zset1 value key(这里可以理解为用来记录数据的那个分数)
  • 向有序集合zset1中添加数据value,可以通过key来获取数据

获取数据

zrang set1 key
  • 获取set1中分数为key的数据

带分数的查询数据

zrange set1 0 -1 withscores 
  • 返回查询到的到数据和分数

根据范围来查找

 ZRANGEBYSCORE z1 60 90
  • 获取z1有序集合中60-90的数据
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值