1.简介
redis是一个非关系型(non-relational database)内存数据库,存储的是key-value映射。key是字符串,value为不同的数据结构。
支持的value有:STRING,LIST,SET,HASH,ZSET(有序集合)。这些数据结构内的基本元素也为字符串。
使用场景?
答:有些网站有文章投票功能,得票高的文章排在前面。使用redis的优势:
1.网站是一个集群,靠应用内的内存来维护投票信息,容易造成数据不一致问题,且增加开发者负担。
2.用关系型数据库,访问缓慢且投票数据没有严格的持久化需求。
2.支持的数据结构
2.1 STRING
可以是字符串、整数或浮点数。
可以放json,这样就达到了存储对象的目的。
2.2 LIST
链表,每个节点都是一个字符串。
2.3 SET
存储元素也为字符串,SET会保证去重。
2.4 HASH
存储键值对,键与值也都是字符串。
2.5 ZSET
有序集合。
字符串成员(member)与浮点数分值(score)之间的有序映射,元素的排列顺序由分值的大小决定。
3.过期时间
某些数据可能在一段时间后就不再需要了,EXPIRE命令可以让指定key在指定的时间段后过期,降低内存占用。
4.持久化支持
redis支持将内存中的数据写入硬盘。
5.主从复制特性
为了扩展redis的读性能,并为redis提供故障转移支持,redis实现了主从复制特性。
执行复制的从服务器会连接上主服务器,接收主服务器发送的整个数据库的初始副本;之后主服务器执行的写命令,都会被发送给所有的从服务器去执行,从而实时地更新从服务器的数据集。因为从服务器包含的数据会不断地进行更新,所以客户端可以向任意一个从服务器发送读请求,以此来避免对主服务器进行集中式的访问。