1.
http://www.kazaff.me/2013/02/19/phpredis%E7%9A%84%E4%BA%8B%E5%8A%A1%E6%93%8D%E4%BD%9C%E7%BB%86%E8%8A%82/
2.
放假没事学习了redis这个key-value数据库。顺便写了点学习笔记和大家分享下,希望对想了解redis的同学有所帮助。
redis对事务的支持目前还比较简单。redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令(指真正执行exec时)。
由于redis是单线程来处理所有client的请求的所以做到这点是很容易的。一般情况下redis在接受到一个client发来的命令后会立即处理并 返回处理结果,但是当一个client在一个连接中发出multi命令有,这个连接会进入一个事务上下文,该连接后续的命令并不是立即执行,而是先放到一
个队列中。当从此连接受到exec命令后,redis会顺序的执行队列中的所有命令。并将所有命令的运行结果打包到一起返回给client.然后此连接就 结束事务上下文。
http://database.51cto.com/art/201208/351762.htm
http://blog.csdn.net/liutingxu1/article/details/17137407
乐观锁:大多数是基于数据版本(version)的记录机制实现的。即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据表添加一个“version”字段来实现取出数据时,将此版本号一同读出,之后更新时,对此版本号+1.此时,将提交数据的版本号与数据表对应记录的当前版本号进行对比,如果提交的数据版本号大于数据库当前版本号,则予以更新,否则认为是过期数据。-------svn 的版本控制就是最好的例子
Redis的乐观锁实例:假设有一个money的key,我们开2个session来对money进行赋值操作,我们来看一下结果如何?
Session1:
127.0.0.1:6379> get money
"301"
127.0.0.1:6379> watch money
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379> incrby money 49
QUEUED
Session2:
127.0.0.1:6379> set money 400
OK
127.0.0.1:6379> get money
"400"
Session1:
127.0.0.1:6379> exec
(nil)
127.0.0.1:6379> get money
"400"
首先我们在session1中开启了对money的监控(watch key开启对key键的监控),然后开启一个事务,把命令incrby money 49放到事务队列中,等待exec执行处理。
之后我们开启session2,在session2中我们直接set money 400,这个时候我们在session2中get一下money发现已经变成400
之后我们回到session1中再用exec去执行事务队列中得incrby money 49这条命令,发现结果是nil也就是没有成功,用get命令看一下money发现是400,而不是449.
整个过程就实现了一个乐观锁。
通过pipeline方式当有大批量的操作时候。我们可以节省很多原来浪费在网络延迟的时间。需要注意到是用 pipeline方式打包命令发送,redis必须在处理完所有命令前先缓存起所有命令的处理结果。
分享到:
相关推荐
Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装Redis3集群安装...
**银河麒麟桌面版Redis 3+ 离线安装指南** 在IT领域,数据库系统扮演着至关重要的角色,其中Redis因其高效、灵活的特性而备受青睐。本文将详细介绍如何在基于ARM架构的银河麒麟桌面版操作系统上进行Redis 3+的离线...
Redis 集群的安装(Redis3+CentOS) Redis 集群是一种高可用架构,它可以提供高性能和高可用性的数据存储解决方案。本文将详细介绍 Redis 集群的安装过程,包括规划、安装和配置等步骤。 一、Redis 集群介绍 ...
"Redis3win.zip"是一个专门为Windows平台打包的Redis版本,它包含了在Windows上运行Redis所需的所有文件。 **Redis基础概念** Redis是一个基于内存的数据结构存储系统,支持多种数据类型,如字符串、哈希、列表、...
3. **安装与启动**: - 解压缩 Redis3.2 文件到本地目录,如 `C:\Redis`。 - 打开命令提示符,导航到 Redis 的 bin 目录,例如:`cd C:\Redis\bin`。 - 运行 `redis-server.exe redis.windows.conf` 来启动 Redis...
redis win版本的绿色安包 redis3
(3)多主复制:Redis 3.0支持多主复制,可以将多个Redis实例之间的数据进行同步,有效高了Redis的可靠性; (4)集群:Redis 3.0支持集群,可以将多个Redis实例拼接成一个集群,并实现负载均衡,提高Redis的可用性...
Redis Cluster是由多个Redis实例组成,官方推荐我们使用6实例,其中3个为主节点,3个为从结点。一旦有主节点发生故障的时候,Redis Cluster可以选举出对应的从结点成为新的主节点,继续对外服务,从而保证服务的高...
安装Redis(3.2.1稳定版)这是64位 如果你的操作系统是32位 则要在make 后指定是32位如下: make CFLAGS="-march=i686" 解压进入目录 make CFLAGS="-march=i686" 这里进入src目录 >>> make install && make test ...
Redis3+Tomcat7Session共享依赖相关包Redis3+Tomcat7Session共享依赖相关包Redis3+Tomcat7Session共享依赖相关包Redis3+Tomcat7Session共享依赖相关包Redis3+Tomcat7Session共享依赖相关包
3. 配置Redis服务:在解压后的目录中找到`redis.windows-service.conf`文件,使用文本编辑器(如Notepad++)打开。此配置文件决定了Redis服务器的运行参数。你可以根据需要修改端口(默认6379)、日志文件位置、数据...
自己整理的当前redis官网所有的方法,是目前最全的线下工具。
3. 编译和安装 Redis:编译和安装 Redis,生成可执行文件。 4. 配置 Redis 节点:配置每个节点的 IP 地址、端口号和服务端口号等信息。 5. 启动 Redis 服务:启动每个节点的 Redis 服务。 6. 配置防火墙:开放相应的...
redis3集群安装包. sudo yum -y install gcc gcc-c++ tcl zlib zlib-devel ruby ruby-devel rubygems rpm-build sudo gem install -l ./redis-3.2.1.gem 启动6个redis节点,然后使用sudo /home/tydic/redis-3.2.13/...
redis集群
在 Redis 3.x 版本以后,maxheap 参数已经被弃用,取而代之的是 maxmemory 参数。例如,我们可以设置 maxmemory 为 1024000000 byte。 设置 Redis 密码 在 SECURITY 部分,可以设置 Redis 的密码。找到 # ...
mvc-session-with-redis2、springmvc项目中,spring集成redis详情查看项目spring-mvc-with-redis3、在maven构建的项目中引入本地jar包详情查看项目web-native-jar4、在spring项目中使用redis实现排行榜详情查看项目...
redis安装包redis
一....3、可以将redis服务安装成windows服务,在命令窗口输入:redis-server --service-install redis.windows.conf即可 4、windows下安装好redis后,启动redis服务:redis-server --service-start
│ 03.Redis 做分布式锁-3.mp4 │ 04.Redis 做消息队列-1.mp4 │ 05.Redis 做消息队列-2.mp4 │ 06.Redis 操作位图-1.mp4 │ 07.Redis 操作位图-2.mp4 │ 08.Redis 操作位图-3.mp4 │ 09.Redis 操作位图-4.mp4...