Redis框架

1.Redis的引言
a)Redis的概念
redis基于内存的Key Value类型的NoSQL数据库.
b)NoSQL(Not Only SQL)
一种特定的数据库分类
1.关系型[结构]数据库(RDB) Oracle MySQL DB2 Postgre SQLServer.
2.NoSQL类型的数据库, 非关系型的数据库产品.
c)NOSQL类型的数据库特点
1.Schemaless 弱结构化 (忽略表格 行 列)
2.In-Memory 内存型产品
3.弱化事务 (没有事务 事务很简单) RDB+NOSQL
4.适用于Cluster环境
5.没有复杂的连接查询操作
6.脚本语言支持(javascript lua)
d)NOSQL常见产品
1.Redis (key value) kv
2.MongoDB (文档) JSON

3.HBASE (column 类型的NOSQL)
4.Cassandra (永远没有单节点故障)
e)Redis的特点

  1. Redis是一个高性能的Key/Value数据库

  2. 基于内存

  3. 数据类型丰富

  4. 持久化

  5. 订阅/发布模型
    f) Redis与Memcache区别
    Redis是一个内存型数据库产品,而Memcache是一个内存型缓存产品,Redis可
    以对内存中的数据进行持久化,而Memcache不行

  6. Redis的安装

2.基本命令
flushall 清空redis中所有的key
keys * 显示redis中所有的key值
set key value 存储一个数据
get key 根据key获取对应的值

3.Redis的数据类型
注意:Redis的数据类型 指的是value类型 key的类型都是字符串.
a)字符串类型 [重点]
注意: 不做字符串 与 数字区分
set
get
mset
mget
strlen
getrange
setex key 10 value
setnx 如果key不存在 创建新的值
如果key存在 不覆盖
b)List类型 (有序 可重复)
lpush | lpushx
rpush | rpushx
lpop|rpop
lrange
llen
linsert names before suns3 suns0 [了解]
c)Set类型(无序 不可重复)
sadd
smemebers
sismember
scard
d)Zset[重要 排行榜]
zadd key score value
zrange
zrangebyscore
zrank 下标
zscore 获取某一个元素的分值
zincrby key score 元素
e)Hash[了解]
hset
hget
hkeys
Hvals

4.基础命令的补充
a)keys *
b)select
选择数据库
redis的内部默认设计了16数据库 redis.conf配置文件指定的

c)flushall
清空所有数据库中的key
d)flushdb
清空当前数据库中的key
e)expire
设置 某一个key的有效期
expire key 时间
账号冻结
account_no 1
expire account_no 时间
秒杀
排行榜
f)ttl
查询一个key的剩余有效期
g)del

5.Redis的JavaClient
a)Jedis工具类中 方法 与 redis的shell命令 同名 作用相同
b)JedisUtils

6.Redis的持久化
a)为什么需要持久化
因为Redis是一个内存性的数据库,为了保证数据在内存掉电时的安全,所以需要进行持久化操作
b)Redis的持久化(2种方案)
1.Snapshotting(RDB) 全本式复制 快照赋值

a)RDB机制的完成流程
1 redis的主进程 fork子进程 完成RDB写操作
2 redis的主进程对提供服务,子进程会把当前数据库中的数据,写入临时文件
3 当临时文件写好之后,覆盖原有的RDB快照文件
b)RDB机制的运行时机
1.自动RDB操作
修改redis.conf文件
默认的配置

2.手工RDB操作
save:
Redis会用主进程 进行RDB文件的处理
bgsave 主进程 fork 子进程完成RDB处理
c)RDB机制的问题
1.在2个保存点之间,有可能存在数据的丢失

2.AOF机制 (增量式复制 日志式复制)
注意:默认redis会使用RDB的方式进行持久化.
redis中即使用RDB 又使用AOF ,redis会应用AOF

a)AOF运行机制

AOF比RDB更加安全,记录每一次的写操作.但是如果在写的过程中掉电,也会丢失少量数据
b)AOF的使用
1.自动AOF
redis.conf配置文件

2.AOF中的注意细节
a)文件同步机制

b)日志文件的重做
把日志文件中的命令,进行合理的合并.
根据当前Redis数据的状态,从新写一个aop文件
i.bgrewriteaof
ii.自动 redis.conf

3.Redis持久化的坑
假定初始Redis使用RDB进行持久化 , 切换AOF进行持久化.问题?
RDB — bgsave ---- dump.rdb
AOP — appendonly.aof 获取数据

热切换:

改变redis.conf文件 appendonly yes

1.Redis的内存管理[调优]
a)内存碎片
问题:影响内存的利用率

b)内存管理目的
减少内存碎片.
借用的第三方的工具(库)完成

c)推荐使用google提供的jemalloc
1.yum jemalloc
2.

2.Redis的实战开发场景(一)
a)Redis用于管理集群环境下的Session

b)应用Redis进行集群环境下的Session管理 ,那么Redis如何设计?
key(sessionid) value(session的数据 二进制)
c)开发步骤

3.Redis的实战开发场景(二)
a)Redis充当Tomcat 与 DB之间缓存
b)Redis充当缓存的实现思路

c)Mybatis与Redis集成 应用全局缓存
定制MyBatis中的Redis缓存 Cache接口(Jedis)
d)如何把java中对象 ---- byte[] 序列化
1.Java IO java_serliazble

2.Fastjson

e)Jedis实现Cache接口

f)应用RedisCache
1.Mybatis-config.xml 开启全局缓存
2.Mapper 设置<cache标签

3.注意:
1 session关闭时 mybatis才会把数据 存储在缓存中
2 事务提交时 mybatis清空缓存 解决脏数据的问题

4.Redis集群操作
a)Replication(Replica 复制 副本集 主从复制 主备复制)
1.Redis副本集的开发
redis.conf 文件中 配置 slaveof masterip masterport
2.Redis副本集的运行过程

b)Sharding [Shard](分库 分表) 分片
1.分库分表的基本概念(RDB)
a)分表

b)分库

c)Redis中的Sharing

1.程序员通过jedis客户端 手工编码完成client分片

2.Jedis Client Sharding标准代码

5.Redis拾遗
a)构建Redis的自启动系统

b)Redis3.x的集群 特点 服务器端自动Sharding

注意: ruby

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scrapy-Redis框架的介绍与应用 摘要: Scrapy-Redis框架是Scrapy爬虫框架的一个扩展,它使用Redis数据库作为Scrapy的调度器和数据存储。本文介绍了Scrapy-Redis框架的基本原理、架构和应用,详细阐述了其在分布式爬虫、数据存储和增量式爬虫等方面的优势,并通过实例说明了如何使用Scrapy-Redis框架进行爬虫开发。 关键词:Scrapy-Redis,分布式爬虫,数据存储,增量式爬虫 一、Scrapy-Redis框架的介绍 Scrapy-Redis框架是Scrapy爬虫框架的一个扩展,它使用Redis数据库作为Scrapy的调度器和数据存储。Scrapy-Redis框架可以在分布式环境下运行,使多台服务器能够同时进行爬取任务,大大提高了爬取效率。此外,Scrapy-Redis框架还支持增量式爬虫,可以根据之前爬取的结果来更新数据,避免重复爬取。 Scrapy-Redis框架主要包含以下组件: 1. Scrapy-Redis调度器 Scrapy-Redis调度器使用Redis的list数据结构实现,每个爬虫任务对应一个Redis列表,爬虫任务被分为多个URL请求,每个请求对应一个Redis列表元素。Scrapy-Redis调度器通过阻塞读取Redis列表来获取待爬取的URL,保证多个爬虫任务之间的URL请求不会重复。 2. Scrapy-Redis去重器 Scrapy-Redis去重器使用Redis的set数据结构实现,对每个爬虫任务的URL进行去重。Scrapy-Redis去重器可以避免重复爬取相同的URL,提高爬取效率。 3. Scrapy-Redis管道 Scrapy-Redis管道使用Redis的hash数据结构实现,将爬取的数据存储到Redis中。Scrapy-Redis管道支持多种数据格式,如json、xml、csv等,可以灵活处理不同类型的数据。 二、Scrapy-Redis框架的应用 1. 分布式爬虫 Scrapy-Redis框架使用Redis作为调度器和数据存储,可以很容易地实现分布式爬虫。多台服务器可以同时运行Scrapy-Redis爬虫,通过Redis列表来共享URL请求和爬取结果。此外,Scrapy-Redis还提供了分布式锁机制,保证多个爬虫任务之间的URL请求不会重复,避免数据重复爬取。 2. 数据存储 Scrapy-Redis框架可以将爬取的数据存储到Redis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值