Redis
文章平均质量分 65
lihaitao_1
这个作者很懒,什么都没留下…
展开
-
Redis数据备份持久化
Redis的持久化Redis有两种持久化的方式:快照(RDB文件)和追加式文件(AOF文件):RDB持久化方式会在一个特定的间隔保存那个时间点的一个数据快照。AOF持久化方式则会记录每一个服务器收到的写操作。在服务启动时,这些记录的操作会逐条执行从而重建出原来的数据。写操作命令记录的格式跟Redis协议一致,以追加的方式进行保存。Redis的持久化是可以禁用的,就是说你可以让数据的转载 2015-08-30 13:46:16 · 389 阅读 · 0 评论 -
Redis学习笔记(2)
散列类型(hash)redis是采用字典结构以键值对的形式存储数据的,而散列类型的键值也是一种字典结构,其存储了字段和字段值的印射,但是字段值只能是字符串,不支持其他数据类型,散列类型不能嵌套其他的数据类型。一个散列类型建可以包含至多2的32次放-1个字段。散列类型适合存储对象:使用对象类别和ID构成键名,使用字段表示对象的属性,字段值存储属性值。这相当于关系数据库的二维表。但是关系数原创 2015-08-16 20:58:39 · 554 阅读 · 0 评论 -
Redis学习笔记(1)
开始我项目缓存用的memcached,但是一位大神推荐我用Redis。因为memcached不是持久化数据库。下面先说说memcached和Redis的区别。Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体原创 2015-08-15 22:06:12 · 485 阅读 · 0 评论 -
Redis学习笔记(3)
列表类型:可以存储一个有序的字串列表,常用的操作是向列表的两端添加元素,或者会的列表的某个片段。列表类型的内部都是使用双向链表实现的,所以向列表两端添加元素的时候时间复杂度为0(1),获取 越接近两端的元素速度越快。这意味着即使是一个有几千万个元素的列表,获取头部或尾部的10条记录也是极快的。不过使用链表的代价是通过索引访问元素比较慢。命令1 向列表两端增加元素LPUSH原创 2015-08-18 21:28:39 · 459 阅读 · 0 评论 -
Redis学习笔记(4)
集合:在集合中每个元素都是不同的,且没有顺序。常用的操作是向集合加入或删除元素。判断某个元素是否存在等,由于集合类型在Redis内部是使用值为空的三列表实现的,所以这些操作的时间复杂度都是0(1)。最方便的是多个集合类型键之间还可以进行并集,交集和差运算。命令1 增加/删除元素SADD key member[member...] 可以向集合增加一个或多个元素,如果键不存在则会自动创建原创 2015-08-22 18:08:34 · 320 阅读 · 0 评论 -
Redis学习笔记(5)
有序集合:在集合的类型的基础上有序集合类型为集合中的每个元素都关联了一个分数,这使的我们不仅可以完成插入,删除和判断元素是否存在等集合类型支持的操作,还能够获得分数最高(或最低)的前N个元素,获得指定分数范围内的元素等与分数有关的操作。虽然集合中每个元素都是不相同的。但是它们的分数可以相同。有序集合某些地方和列表类型有些相似:二者都是有序的,都可以获得某一范围内的元素。有序集合和列表的区别原创 2015-08-23 10:57:34 · 349 阅读 · 0 评论 -
Redis 集群的合纵与连横
原创 2016-01-04 mindwind 瞬息之间前一篇写了关于 Redis 的性能,这篇就写写我认为比性能更重要的扩展性方面的主题。如果再给我一次回到好几年前的机会,对于使用 Redis 我一开始就要好好考虑将来的扩展问题。就像我们做数据库分库分表,一旦决策了分库分表,通常一次就会分到位,比如搞上 8 或 16 个库,每个库再分 256 或转载 2016-06-02 11:56:23 · 489 阅读 · 0 评论 -
缓存更新的套路
看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。我不知道为什么这么多人用的都是这转载 2016-08-01 14:29:47 · 316 阅读 · 0 评论