一丶Redis引见
Redis是一个开源的 key—value型 单线程 数据库,支撑string、list、set、zset和hash范例数据。
默许端口:6379
默许数据库数目:16
二、长处:
1.nosql数据库没有关联关联,数据结构简朴,拓展表比较轻易
2.nosql读取速度快,对较大数据处理快
三、实用场景:
1.数据高并发的读写
2.海量数据的读写
对扩大性要求高的数据
四、不适场景:
1.须要事件支撑(非关联型数据库)
2.基于sql结构化查询贮存,关联庞杂
五、运用场景
下面这些作者是Redis作者@antirez,他形貌了Redis比较合适的一些运用场景,NoSQLFan简朴枚举在这里,供人人一览:
1.取最新N个数据的操纵
比方典范的取你网站的最新文章,经由过程下面体式格局,我们能够将最新的5000条批评的ID放在Redis的List鸠合中,并将超越鸠合部份从数据库猎取
运用LPUSH latest.comments<ID>敕令,向list鸠合中插进去数据
插进去完成后再用LTRIM latest.comments 0 5000敕令使其永久只保留近来5000个ID
然后我们在客户端猎取某一页批评时能够用下面的逻辑(伪代码)
FUNCTION get_latest_comments(start,num_items): id_list = redis.lrange("latest.comments",start,start+num_items-1) IF id_list.length < num_items id_list = SQL_DB("SELECT ... ORDER BY time LIMIT ...") END RETURN id_list END
假如你另有差别的挑选维度,比方某个分类的最新N条,那末你能够再建一个按此分类的List,只存ID的话,Redis是异常高效的。
2.排行榜运用,取TOP N操纵
这个需求与上面需求的差别之处在于,前面操纵以时候为权重,这个是以某个前提为权重,比方按顶的次数排序,这时候就须要我们的sorted set出马了,将你要排序的值设置成sorted set的score,将细致的数据设置成响应的value,每次只须要实行一条ZADD敕令即可。
3.须要精准设定逾期时候的运用
比方你能够把上面说到的sorted set的score值设置成逾期时候的时候戳,那末就能够简朴地经由过程逾期时候排序,定时消灭逾期数据了,不仅是消灭Redis中的逾期数据,你完全能够把Redis里这个逾期时候当做是对数据库中数据的索引,用Redis来找出哪些数据须要逾期删除,然后再精准地从数据库中删除响应的纪录。
4.计数器运用
Redis的敕令都是原子性的,你能够轻松地应用INCR,DECR敕令来构建计数器体系。
5.Uniq操纵,猎取某段时候一切数据排重值
这个运用Redis的set数据结构最合适了,只须要不断地将数据往set中扔就好了,set意为鸠合,所以会自动排重。
6.及时体系,反垃圾体系
经由过程上面说到的set功用,你能够晓得一个终端用户是不是举行了某个操纵,能够找到其操纵的鸠合并举行剖析统计对照等。没有做不到,只要想不到。
7.Pub/Sub构建及时音讯体系
Redis的Pub/Sub体系能够构建及时的音讯体系,比方很多用Pub/Sub构建的及时谈天体系的例子。
8.构建行列体系
运用list能够构建行列体系,运用sorted set以至能够构建有优先级的行列体系。
以上就是Redis是什么?有哪些运用场景?的细致内容,更多请关注ki4网别的相干文章!