Redis
1、Redis 是完全开源免费的一个高性能的非关系型key-value数据库
2、优点
(1)Redis是用C语言实现的,所有数据存储在内存中以键值对形式保存,速度快。
(2)Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
(3)Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
(4)Redis支持数据的备份,即主从master-slave模式的数据备份,主服务器(master)执行添加、修改、删除,从服务器执行查询
(5)Redis支持高可用和分布式
3、长短链接
(1)所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接。
(2)短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对 CMPP消息的发送
(3)设置长连接:修改redis.conf的tcp-keepalive=1, 默认为0,表示禁止长连接
4、数据结构选择
(1)String
最常规的set/get操作,value可以是String或数字。一般做一些复杂的计数功能的缓存
(2)Hash
这里value存放的是结构化的对象,比较方便的就是操作其中的某个字段。如在做单点登录的时候,就是用这种数据结构存储用户信息,以cookieId作为key,设置30分钟为缓存过期时间,能很好的模拟出类似session的效果
(3)List
使用List的数据结构,可以做简单的消息队列的功能。另外还有一个就是,可以利用lrange命令,做基于redis的分页功能,性能极佳,用户体验好。LIST可以很好的完成排队,先进先出的原则
(4)Set
因为set堆放的是一堆不重复值的集合。所以可以做全局去重的功能。
(5)sorted set
sorted set多了一个权重参数score,集合中的元素能够按score进行排列。可以做排行榜应用,取TOP N操作