redis事务的使用场景 怎么让Redis数据库读一个文件里的数据来初始化数据库?

[更新]
·
·
分类:互联网
3274 阅读

redis事务的使用场景

怎么让Redis数据库读一个文件里的数据来初始化数据库?

怎么让Redis数据库读一个文件里的数据来初始化数据库?

首先redis是作为缓存的,一般作为缓存有两种用途,快速访问和减少IO频率,所谓减少IO频率就是等缓存积累到一定大小然后一次刷入磁盘进行持久化。
一般的设计就是客户端往数据库里更新或者写读数据,redis做为经常需要被读取的数据或者被修改数据的缓存,提高操作效率,一般的操作应该是客户端要修改数据时,先去缓存REDIS找,找不到的话去数据库读取,替换不热的缓存,不热的缓存刷回数据库;能找到的话直接修改,这不存在一致性问题。
然而LZ要并发访问REDIS和SQL,这样要保持一致性的话,读的时候就不能写了,就是客户端更新REDIS,然后REDIS回写数据库,这是一个事务,如果有一步不成功,那么整个事务不成功;
如果是多客户端,如果数据木有分块,那么所有写操作串行话,如果对数据进行了合理分块,同一块数据数据串行写,不同块并发处理。
如果保证读的时候不能写,这就需要一个主控节点来提供分布式锁。分布式知识太多啦,我就粗燥写了几句!

redis怎么使用,有什么好处?

Redis是一个开源的Key-Value存储,但又不仅仅是Key-Value存储,用官网上的话来说,Redis是一个数据结构存储,可用作数据库、缓存和消息中间件。Redis具有如下特点:
速度快
丰富的数据结构,除String之外,还有List、Hash、Set、Sorted Set
单线程,避免了线程切换和锁的性能消耗
原子操作
可持久化(RDB与AOF)
发布/订阅
支持Lua脚本
分布式锁
事务
主从复制与高可用(Redis Sentinel)
集群(3.0版本以上)
二、Redis 数据结构
1、String
这是最简单的Redis类型。
2、List
Redis的List是基于双向链表实现的,可以支持反向查找和遍历。
常用案例:聊天系统、社交网络中获取用户最新发表的帖子、简单的消息队列、新闻的分页列表、博客的评论系统。
3、Hash
Hash是一个String类型的field和value之间的映射表,主要用来存储对象,可以避免序列化的开销和并发修改控制的问题。
4、Set
Set也是一个列表,不过它的特殊之处在于它是可以自动排重的:当需要存储一个列表数据,而又不希望出现重复的时候,Set是一个很好的选择(比如ID的集合)。并且Set提供了判断某个成员是否在一个Set集合内的接口,这也是List所没有的。
5、Sorted Set
Sorted Set和Set的使用场景类似,区别是Sorted Set会根据提供的score参数来进行自动排序。当你需要一个有序的并且不重复的集合列表,那么就可以选择Sorted Set数据结构。常用案例:游戏中的排行榜。