1.Redis初识
速度快
数据存储在内存
C语言编写
每秒可以使用十万次OPS(读写)
单线程
持久化
断电不丢数据
Redis所有数据保持在内存中,对数据的更新将异步地保存到磁盘上(rbd和aof)
多种数据结构 key-value结构
BitMaps:位图
HyperLogLog:超小内存唯一值计数
GEO:地理信息定位
支持多种编程语言
功能丰富
简单,使用方便
主从复制
高可用和分布式
Redis命令
实现如下功能:记录网站每个用户个人主页的访问量
hincrby user:1:info pageview count
实现如下功能:缓存视频的基本信息(数据源在MySQL中)伪代码
(小心使用hgetall!)
list
list常用命令
(删除所有与a相等的项)
(删除从右边开始的负数的绝对值大小的与c相等的项)
(保留1-4下标,删除0和5下标的a和f)
(查询list中的元素,正的就从左开始,负的从右开始)
(查询0-2下标和查询1到最后一个元素的语句)
(取第一个元素;取最后一个元素)
(改:将下标为2的元素c改为java)
(客户端演示)
实战:TimeLine时间轴
将关注用户的微博按照从新到旧的顺序排列
(不常用)
(一些模拟数据结构的小技巧)
集合Set
sinter,sdiff,sunion
(实战:共同关注)
集合中命令
(返回元素是无序的)
实战:抽奖系统
可以使用集合的spop或者srandmember进行一个弹出,活动取消后就进行删除
实战:Like,赞,踩
集合添加sadd给某条微博的id的集合里的赞集合加一
实战:标签(tag)
集合间的API
(实战应用小提示:标签,随机数,社交应用)
有序集合:
(集合和有序集合的对比)
(列表和有序集合的对比)
(score可以重复,element不可以重复)
(这个是byscore,上面是byrank)
实战:排行榜
(不常用命令,zsinter是交集)