Redis是一款优秀的非关系型数据库,是一个由C语言开发的单线程(进程)应用,操作具有原子性,因此不需要考虑并发线程安全问题。
(一)redis做为缓存应用场景
1:数据相对稳定变化不大,访问频次较高,
2:数据实时性要求不高;
3:并发量比较大读多写少的场景
Redis五种数据结构
String:键值对 {key : value}
常用操作: 命令 set get delincr key : 给key对应value +1
decr key : 给key对应value -1
expire key time : 超过time时间删除 key
Hash:哈希 {key:{key:value}}
常用操作: hset hget hdel
语法格式 :
hset key key value
hget key key
del key key List:列表
常用操作:lpush,rpush,lpop,rpop,lrange等
Set:集合
常用操作:sadd,spop,smembers,sunion等
在redis中Set是一个经过去重的集合。
Sorted Set:有序集合
常用操作:zadd,zrange,zrem,zcard等
有序的集合
zadd:存储一个按照score排序的数据集合,添加时自动排序,例如: 优先队列 ,普通消息的score为1,重要消息的score为2,然后工作线程可以选择按score的倒序来获取工作任务。让重要的任务优先执行。
zrange、zrangebyscore等等: 按照score顺序 获取数据集,例如:微博的时间流信息,把发布时间作为score。还可以用来 处理过期数据。 后台任务使用ZRANGE…SCORES查询排序集合,取出最新的10个项目。如果发现unix时间已经过期,则在数据库中删除条目。
zrank: 排行榜 功能,score作为投票结果
引用转发的文章 https://www.cnblogs.com/yewg/p/5586253.html 抱歉
redis优点:
1:读写性能优异
2:支持数据持续化,支持AOF和RDB两种持久化方式
3:支持主从复制,主机自动将数据同步到从机,可以进行读写分离
4:数据结构丰富
redis缺点:
1:Redis不具备自动容错和恢复功能,主机从机的怠机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端IP才能恢复。
2:主机怠机,怠机前有部分数据未能及时同步到从机,切换IP后引入数据不一致的问题,降低系统的可用性
3:redis的主从复制采用全量复制。