我们在打完游戏的关卡之后,需要保存游戏进度。单机游戏的进度都保存在本地磁盘上,如果是网络游戏的话该怎么办呢?这一节,我就来讲这个内容。
首先,我们要了解游戏内容的保存,需要先了解缓存处理。
为什么要了解缓存的处理呢?那是因为在大量用户的情况下,我们所保存的内容都是为了下次读取,如果每一次都从硬盘或者数据库读取,会导致用户量巨大数据库死锁,或者造成读取速度变慢,所以在服务器端,缓存的功能是一定要加上的。
Redis 不仅是内存缓存
缓存机制里有个叫 Redis 的软件。它是一种内存数据库,很多开发者把 Redis 当作单纯的内存缓存来使用,事实上,这种说法并不准确,Redis 完全可以当作一般数据库来使用。
Redis 是一种 key-value 型的存储系统。它支持存储的 value 类型很多,包括字符串、链表、集合、有序集合和哈希类型。这些数据类型都支持 push/pop、add/remove 及取交集并集和差集及更丰富的操作,而且这些操作都具有原子性。
Redis 还支持各种不同方式的排序。为了保证效率,数据一般都会缓存在内存中,而 Redis 会周期性地把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现 master-slave(主从)的同步。