Non_relational_database_advanced_learning

非关系型数据进阶系统学习

Redis

Redis教程:

Redis命令:

  • Redis官网全部命令:
    https://redis.io/commands
  • Redis命令参考中文网:
    http://doc.redisfans.com/
  • Redis使用参考:
    Python爬虫开发与项目实战PDF文件中的第16章 分布式爬虫与Scrapy
    Python爬虫开发与项目实战项目文件的ch16中的Python交互实例
    ch12中的sht爬虫项目采用的就是:ShtSpider(RedisSpider)(使用的redis爬取去重)
    ch17中的yunqshuyuan项目去重方式也是采用的redis去重
  • 第一部分:Redis简介及安装
  • 第二部分:Redis数据操作
  • 第三部分:Redis与Python交互
  • 第四部分:Redis主从与集群

第一部分:Redis简介及安装

1. Redis简介

  • NoSQL:一类新出现的数据库(not only sql),它的特点:
    不支持SQL语法
    存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式
    NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景
    NoSQL中的产品种类相当多:
    Mongodb
    Redis
    Hbase hadoop
    Cassandra hadoop
  • NoSQL和SQL数据库的比较:
    适用场景不同:sql数据库适合用于关系特别复杂的数据查询场景,nosql反之
    “事务”特性的支持:sql对事务的支持非常完善,而nosql基本不支持事务
    两者在不断地取长补短,呈现融合趋势
  • Redis简介
    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
    Redis是 NoSQL技术阵营中的一员,它通过多种键值数据类型来适应不同场景下的存储需求,借助一些高层级的接口使用其可以胜任,
    如缓存、队列系统的不同角色
  • Redis特性
    Redis 与其他 key - value 缓存产品有以下三个特点:
    Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
    Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
    Redis支持数据的备份,即master-slave模式的数据备份。
  • Redis 优势
    性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
    丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
    原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
    丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
  • redis应用场景
    用来做缓存(ehcache/memcached)——redis的所有数据是放在内存中的(内存数据库)
    可以在某些特定应用场景下替代传统数据库——比如社交类的应用
    在一些大型系统中,巧妙地实现一些特定的功能:session共享、购物车
    只要你有丰富的想象力,redis可以用在可以给你无限的惊喜…….

2. Redis安装

  • 下载软件,解压到安装目录即可
  • 软件安装文件夹添加到环境变量
  • CMD启动服务器和客户端

3. Redis配置

Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf(Windows 名为 redis.windows.conf)。
你可以通过 CONFIG 命令查看或设置配置项。

配置说明及设置参考网址:

https://www.runoob.com/redis/redis-conf.html

  • redis 127.0.0.1:6379> CONFIG GET loglevel
    使用 * 号获取所有配置项:
  • redis 127.0.0.1:6379> CONFIG GET *

4. Redis数据类型

  • Redis支持五种数据类型:
    string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

5. Redis默认数据库

Redis是一个字典结构的存储服务器,而实际上一个Redis实例提供了多个用来存储数据的字典,
客户端可以指定将数据存储在哪个字典中。这与我们熟知的在一个关系数据库实例中可以创建多个数据库类似,
所以可以将其中的每个字典都理解成一个独立的数据库。

每个数据库对外都是一个从0开始的递增数字命名,Redis默认支持16个数据库(可以通过配置文件支持更多,无上限),
可以通过配置databases来修改这一数字。客户端与Redis建立连接后会自动选择0号数据库,
不过可以随时使用SELECT命令更换数据库,如要选择1号数据库:select 1

查看数据库所有的key: keys *