Redis

Redis简介

Redis是一种NoSQL数据库,它的数据是保存在内存中,同时,Redis可以定时把内存数据同步到磁盘,即可以将数据持久化,并且他比Memcached支持更多的数据 结构(String--字符串、List--链表[队列和栈]、Set--集合、Zset(Sorted Set--有序集合)、Hash(哈希表))。

Redis 很大程度补偿了Memcached这类Key/Value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。

Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。还支持持久化、支持更多数据结构。

实现的功能
Ⅰ、 海量的简单读写
根据Redis官方的测试结果,在50个并发的情况下请求10万次,写的速度是11000次/s,读的速度是81000次/s。所以用于处理类似于微博热点事件、交单排序、关注排行之类实时但功能单一的局部应用是最理想的。
Ⅱ、实时的反垃圾系统
反垃圾系统通常都是基于关键词的,使用Redis储存关系词,能够利用Redis的高性能,为监控系统提供稳定及精确的实时监控功能,典型的有邮件系统、评论系统等。
Ⅲ、公开的统计系统
利用Redis的简单易用的群体部署功能,能够轻易地开发大规模的统计系统,例如广告系统、万展统计系统、简单的股市分析系统等。
Ⅳ、消息队列
消息队列是提高关系型数据库数据插入的有效手段,Redis是NoSQL中为数不多支持消息队列的数据库。常用的应用有网站邮件、站内短信、品论系统等。
Ⅴ、消息堆栈系统
消息堆栈与消息队列在处理顺序上是相反的,消息队列的规则为先进先出;而消息堆栈则是先进后出。典型的应用有论坛回帖排序等。
Ⅵ、日志或缓存系统
Virtual Memory功能非常适用于存放安全日志、网站日志以及数据缓存等。国内的新浪微博所构建的缓存系统是全球最大的Redis缓存系统。

项目中的使用
缓存
队列
计数
删除与过滤
排行榜相关
处理过期项目
显示最新的项目列表
特定时间内的特定项目
解决邮箱激活的实效性
按照用户投票和时间排序
实时分析正在发生的情况,用于数据统计与防止垃圾邮件等

生成订单ID主键,用自增(jedis.incr("skuID")),模仿京东的商品编号,普通long肯定不够
保存用户session(可以实现session共享)
保存购物车(未登录保存到cookie,登陆后把cookie中购物车保存到redis,删除本地cookie购物车)  list类型
保存品牌信息(品牌ID,名称;map类型),可以理解为数据字典,减小数据库压力  map类型
Redis的Java接口:jedis的jar,其他操作和命令行的操作方法相似

消息队列
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。
目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。

Pub/Sub
Pub/Sub模型定义了如何向一个内容节点发布和订阅消息,这些节点被称作主题(Topic)。
主题可以被认为是消息的传输中介,发布者(Publisher)发布消息到主题,订阅者(Subscriber) 从主题订阅消息。
主题使得消息订阅者和消息发布者保持互相独立,不需要接触即可保证消息的传送。

Memcached
Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的HashMap。其守护进程(Daemon )是用C写的,但是客户端可以用任何语言来编写,并通过Memcached协议与守护进程通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值