redis应用简单说

来源:互联网 发布:c 串口通信编程 编辑:程序博客网 时间:2024/04/29 10:11

redis(remote Directory Server):远程服务器字典,keyvalue内存型数据库 nosql,
redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加记录文件,并且在基础上实现master-slave同步(分布式集群同步)

nosql数据库的四大分类
1.键值keyvalue型数据库:redis,Oracle BDB
2.列存储数据库:Cassandra,HBase,Riak
3.文档型数据库:CouchDB,MongoDb
4.图形数据库:Neo4J,infoGrid,Infinite Graph

在一个分布式系统中,存在3中特征
1.Consistency 一致性
关系型数据库ACID:
比如一个事物,转钱,整个操作时连贯的,中间操作失败都全部回退,不成立
nosql型:
在多个副本之间,数据要保证一致性
2.Availability 可用性
nosql型:
无论发生事情,客户端请求的数据都要做出回应,就算你某台服务器崩掉了,其它服务器也要做出回应,这也是分布式系统的可用性
3.Partition tolerance 分区容错性
nosql:
就算某些分区的出现了故障,但是正常的分区部分还是能提供完整响应和服务(主要是提供完整的服务)

但这三者不可见兼得,必须要有所取舍
和一般关系型数据库不同,比如关系型数据库具有ACID
A.Availability
C.Consstency一致性
I.Isolation隔离性
D.Durability持久性

例如
CA:RDBMS
CP:MongoDB,HBase,Redis
AP:CouchDB,Cassandra,DynamoDB

常用命令
1.ping
2.info 可以查看当前服务器的状况
3.config get当前服务器的配置
4.dbsize 内存中用了几个关键的key
5.Keys 相应的关键key值
6.del key 删掉key值
7.type key(具体的key值) 查看key的数据类型
8.expire key(具体的值)5 这个key值在多少秒以后失效

redis包含了很多种保存数据的类型,比如string,list,set,sortedSet有序集合(经常用于时间,销量,价格排序,人气),hash表(其实就是map,value存放json字符串)等

常用功能
1.消息的发布和订阅

redis存储机制
1.RDB(Redis DataBase)
这是一种snapshot机制的存储,即系统每隔一段时间,就会把redis中的所有数据进行一次全部备份,存储在edb文件中
优点:rdb格式文件时一种紧凑的数据文件,在数据恢复时不会出错,而且速度远快于aof
缺点:rdb是数据的全部备份,当数据量很大时,一次备份需要的时间就比较长,所以一天可能就做一到两次的备份

2.AOF(Append-only file)
这其实是RDB的一种补充,这是一种增量数据备份方式,一般系统会设置为每隔一秒,做一次aof数据备份
优点:当出现灾难时,数据丢失的较少
缺点:aof文件容易出现错误,而且恢复速度慢

在实战项目中如何使用redis
1.如果项目在启动过程中需要加载几十W本书,那么怎么操作
需要预先开启一个服务器B去将数据库(oracle,mysql等)中的数据全部记在到redis,然后再启动服务A,服务A只是去调用redis中的数据,显示等
2,如何对数据进行排序
比如拿书的出版来说,首先先全部信息放入一个hash表,以id为主见,然后再创建一个sortset,以时间作为score,值为id
3.对点击次数的统计
会在内存中形成一个map,这样比在数据库记录快得多,因为数据库要建立链接还要查询,然后再修改,这是很耗时间的。
4.论坛评论
比如对一个帖子的评论,存放在redis的list中
5.对评论的点赞
其实也是在list中先找到评论,然后对评论的点赞属性+1
7.session id的存储
比如说有几W人在线,然后会话session id都是由tomcat来存储,如果主机宕机了,这怎么办,所有用户信息都丢失了
解决方案:
(1)信息转移,但当tomcat停掉以后信息也没了,这时候就将session id放到远程redis,一台机子宕机,又可以从另外一台机子将会话读回来
8.商品搜索
一般可以使用redis(用于存储)+solr(用于搜索)
9.最新品论展示
将前100条放redis,其余的sql放数据库,当看101条的时候在查数据库
10.消息队列
一般用于读写日志文件,商品秒杀等,因为读写日志需要锁,所以可以将请求都放入一个队列,再依次执行
11.topN
取商品的前几名等,一般都直接可以使用redis的sortset

原创粉丝点击