Redis 远程字典服务 ——Nosql技术
一、五种基本的数据类型
String list hash set sorted set(排序集合)
二、五种特性
(1)inmemory 在内存中 与cache类似,是一个以key-value存储的缓存系统
(2)弱化事务 基本是没有事务概念的,只有在某些地方会对事务进行遍历,而且它的遍历也不是遇到错误就停下来,而是遇到错误不管也不处理。
(3)集群环境
(4)Key-value查询
(5)脚本语言支持
三、
redis是一个单线程的系统,
支持持久化(cache不支持持久化),
订阅/发布功能
(
Redis 的消息队列功能
A B C
如果A,B,C服务器都订阅redis的某个key,那么就可以通过A在这个key里发布信息,放到redis的消息队列,redis会把消息推送到所有订阅了这个key的B,C服务器。Redis本身是不存储这个数据的。
)
四、redis和Memcache的区别
Memcache不能集群,最大为1M
Redis可以集群,最大为1G
五、Redis 常用于web服务器和数据库之间,充当缓存系统,因为其具有持久化功能,可以连接数据库,大量的数据放在redis里面缓存,web服务器或者应用与redis缓存进行交互,可提高程序执行的性能。
服务器——redis服务器——数据库
六、redis有一个第三方的图形界面 Redis Desktop Manager。不过并不是特别的好用。
七、Redis数据结构的各种命令
redis命令参考
String 类型
List类型
Lpush Rpush Lpop Rpop Irange BLpop Brpop阻塞版
八、Session管理
九、集群服务
1、解决单节点故障
2、读写分离
Redis share
Web服务器 ——redis mater
Redis share
十、Redis充当Message Queue
消息队列 实现订阅/发布功能
十一、redis充当数据库服务器
十二、Redis目前需要解决的问题就是内存问题?
内存有限,游戏数据庞大,如何把redis内存中的数据写入到数据库中,或者从数据库中读出来数据。
1、序列化到本地
2、Redis是否支持数据写入到内存中
3、集群扩容,不过这只能解决容量的问题,不能解决游戏中大量死数据的问题
解决内存问题:主要还是要从如果从游戏死数据中分离出来活跃用户的角度下手。
方法:合服的时候清除死数据,判断玩家playerBean数据是否超过某一时间,超过时间设置玩家playCache里状态标识位为非法。在从数据库大量load玩家playerCache数据到内存中,状态非法和数据为空的被剔除掉。
4、架构解决

Redis的清除过期机制:
10个key,空闲的时间不停的执行。内存紧张的时候会全部遍历,删除过期的key来释放内存。
















