在服务端为了减轻高并发下数据库的访问压力,经常要应用缓存。redis和memcached都可以作为缓存系统使用,redis与memcached一样,为了保证效率,数据都是缓存在内存中,读写的性能差距不大。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。而且相比memcache,redis还支持事务操作和多种储存结构,在分布式集群的架构下,redis的扩展性更强。
认识redis,最基本就是了解它支持存储的数据结构和特性,这样才能更好的理解它的操作命令和应用场景。基于redis的广泛应用,今天的小课堂就和大家一起认识一下redis中基本的5种数据结构。
redis的简单认识
作为缓存工具时的使用,我们经常将一些结构化的信息打包成集合,序列化后存储为一个字符串的值,比如用户的昵称、年龄、性别、积分等。这时候在读取,需要将字符串取出来,然后进行反序列化。如果修改某一项的值,需要再序列化成字符串存储回去。简单修改一个属性就干这么多事情,消耗必定是很大的,也不适用于一些可能并发操作的场合。因此我们可以例如redis支持数据类型的特性,根据业务用Redis直接存储数据,实现功能。
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)、Hash(字典)。
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。
如果你是Redis中高级用户&#