![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 67
尼古拉斯--黑子
学海无涯
展开
-
Redis事务
关系数据库事务 Redis的事务和传统关系数据库的事务并不相同。在关系数据库中,用户首先向数据库服务器发送BEGIN ,然后执行各个相互一致( consistent )的写操作和读操作,最后,用户可以选择发送COMMIT来确认之前所做的修改,或者发送ROLLBACK来放弃那些修改。Redis事务: 在Redis里面也有简单的方法可以处理一连串相互一致的读操作和写操作。Redis 的事务以特殊命令原创 2018-01-01 17:19:46 · 624 阅读 · 0 评论 -
初识Redis
Redis简介: Redis 是一个NoSQL或者非关系型的远程内存数据库,它可以存储键( key )与5 种不同类型的值( value )之间的映射( mapping ),可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展写性能,用户可以很方便地将Redis 扩展成一个能够包含数百GB 数据、每秒处理上百万次请求的系统。Redis和Memcache原创 2017-12-28 12:04:21 · 152 阅读 · 0 评论 -
持久化
概述:持久化的目的: 1)将内存中的数据存储到硬盘的一个主要原因是为了在之后重用数据 2)防止系统故障而将数据备份到一个远程位置 3)存储在Redis 里面的数据有可能是经过长时间计算得出的,所以用户会希望自己可以将这些数据存储起来以便之后使用,这样就不必再重新计算了持久化的方式: 概述: Redis提供了AOF和RDB两种方式,两者可单独使用也可以结合使用,同时使用时重新启动Redis后原创 2017-12-29 10:24:26 · 254 阅读 · 0 评论 -
复制
概述: 通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据。但是由于数据是存储在一台服务器上的,如果这台服务器的硬盘出现故障,也会导致数据丢失。为了避免单点故障,我们希望将数据库复制多个副本以部署在不同的服务器上,即使有一台服务器出现故障其他服务器依然可以继续提供服务。这就要求当一台服务器上的数据库更新后,可以自动将更新的数据同步到其他服务器上。Redis提供了复原创 2017-12-29 15:18:05 · 262 阅读 · 0 评论 -
故障恢复
概述:用户必须做好相应的准备来应对Redis 的系统故障。如果我们决定要将Redis 用作应用程序唯一的数据存储手段, 那么就必须确保Redis 不会丢失任何数据。跟提供了ACID(ACID 是指原子性、一致性、隔离性和持久性,如果一个数据库想要实现可靠的数据事务,那么它就必须保证ACID 性质。)保证的传统关系数据库不同,在使用Redis为后端构建应用程序的时候,用户需要多做一些工作才能保证数据的原创 2017-12-29 17:17:24 · 707 阅读 · 0 评论 -
分布式锁
概述: Redis使用WATCH命令来代替对数据进行加锁,因为WATCH只会在数据被其他客户端抢先修改了的情况下通知执行了这个命令的客户端,而不会阻止其他客户端对数据进行修改,所以这个命令被称为乐观锁。分布式锁是由不同机器上的不同Redis客户端进行获取和释放的。分布式锁实现原理: 为了对数据进行排他性访问,程序首先要做的就是获取锁。利用SETNX命令来实现锁的获取功能,这个命令只会在原创 2017-12-30 17:26:17 · 761 阅读 · 0 评论 -
数据类型类型底层实现
简单动态字符串SDS:定义:struct sdshdr { //记录buf数组中已使用字节的数量 //等于SDS所保存字符串的长度 int len; //记录buf数组中未使用字节的数量 int free; //字节数组,用于保存字符串 char buf[];};free属性的值为0,表示这个SDS没有分配任何未原创 2018-01-03 13:13:55 · 1606 阅读 · 0 评论 -
数据类型
命令参考String:底层实现Redis 的字符串就是一个由字节组成的序列,可以存储以下3 种类型的值:字符串,整数,浮点数。用户可以通过给定一个任意的数值,对存储着整数或者浮点数的字符串执行自增或者自减操作,在需要的时候, Redis 还会将整数转换成浮点数。 命令 用例和描述 INCR INCR key-name一一将键存储的值加上1 DECR ...原创 2017-12-28 20:44:10 · 185 阅读 · 0 评论