马丁传奇

导航

2013年11月10日 #

redis的sort排序

摘要: Redis排序命令是sort,完整的命令格式如下:SORT key [BY pattern] [LIMIT start count] [GET pattern] [ASC|DESC] [ALPHA] [STORE dstkey]返回或保存给定列表、集合、有序集合key中经过排序的元素。排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较。 说明1.一般sort用法 > lpush list1 hello 1 world 2 nihao 3 color bit 2B(integer) 8> lrange list1 0 -11) "2B"2) " 阅读全文

posted @ 2013-11-10 03:02 马丁传奇 阅读(2353) 评论(0) 推荐(0) 编辑

2013年11月9日 #

redis的高级事务CAS(乐观锁)

摘要: Optimistic locking using check-and-set(乐观锁)乐观锁介绍:watch指令在redis事物中提供了CAS的行为。为了检测被watch的keys在是否有多个clients同时改变引起冲突,这些keys将会被监控。如果至少有一个被监控的key在执行exec命令前被修改,整个事物将会回滚,不执行任何动作,从而保证原子性操作,并且执行exec会得到null的回复。乐观锁工作机制:watch 命令会监视给定的每一个key,当exec时如果监视的任一个key自从调用watch后发生过变化,则整个事务会回滚,不执行任何动作。注意watch的key是对整个连接有效的,事务 阅读全文

posted @ 2013-11-09 02:31 马丁传奇 阅读(21306) 评论(1) 推荐(5) 编辑

redis的Pub/Sub功能

摘要: Pub/Sub功能(即Publish,Subscribe)意思是发布及订阅功能。简单的理解就像我们订阅blog一样,不同的是,这里的客户端与server端采用长连接建立推送机制,一个客户端发布消息,可以在多个客户端收到通知。发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似。pub /sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者在物理部署上的耦合。redis作为一个pub/sub server,在订阅者和发布者之间起到了消息路由的功能。订阅者可以通过subscribe和psubscribe命令向red 阅读全文

posted @ 2013-11-09 00:28 马丁传奇 阅读(4165) 评论(0) 推荐(0) 编辑

2013年11月8日 #

redis的自带VM(虚拟内存)

摘要: Redis支持采用VM技术,以达到当数据超过设置的可使用的物理内存的时候能够正常运行。当数据超过物理内存的时候,把一部分数据写入磁盘中的一块空间来代替物理内存。vm-enabled no # VM总开关。是否开启虚拟内存?默认不开启,如果开启请设置为:yesreally-use-vm yes # 重复确认开启虚拟内存,可以紧接着上面的添加vm-enabled再手工添加此项vm-swap-file /tmp/redis.swap # 默认虚拟内存交换文件的路径vm-max-memory 0???# 虚拟内存的大小(redis使用最大内存上限)。当设置为0的时候,其实是所有value都存在于磁盘, 阅读全文

posted @ 2013-11-08 17:08 马丁传奇 阅读(795) 评论(0) 推荐(0) 编辑

redis的数据持久化存储

摘要: Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到硬盘来保证持久化。Redis支持两种持久化方式:一、snapshotting(快照)方式快照是默认的持久化方式。这种方式是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。我们可以配置redis在n秒内如果超过若干个key被修改就自动做快照持久保存。在约87行,有默认的快照策略(指定在多长时间内,有多少次更新操作,就将数据同步到数据快照文件,可以多个条件配合,客户端也可以使用 save 命令强制立即保存快照):save 900 1 # 在900秒内有1个key更新,就写入快照文件sa 阅读全文

posted @ 2013-11-08 16:55 马丁传奇 阅读(2912) 评论(0) 推荐(0) 编辑

2013年11月5日 #

redis分布式(主从复制)

摘要: Redis主从复制配置和使用都非常简单。通过主从复制可以允许多个slave server拥有和master server相同的数据库副本。 Redis的复制原理:本身就是Master发送数据给slave,只是第一次连接是Slave向Master发送同步请求,其它的都是Master主动向Slave发送数据。Redis主从复制的过程:当设置好slave服务器后,slave会建立和master的连接,然后发送sync命令。无论是第一次同步建立的连接还是连接断开后的自动尝试重新连接,master都会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存起来。后台进 阅读全文

posted @ 2013-11-05 15:08 马丁传奇 阅读(624) 评论(0) 推荐(0) 编辑

2013年10月31日 #

redis的简单事务

摘要: Redis对事务的支持目前还比较简单。Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。当一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中的所有命令,若需要撤销队列中的所有命令也可以使用discard命令执行撤销。试验1.启动并执行一个批处理(事务)redis 127.0.0.1:6379> mget name age //读取键的值1) "zhangsan"2) "22 阅读全文

posted @ 2013-10-31 19:44 马丁传奇 阅读(340) 评论(0) 推荐(0) 编辑

redis安全性 添加访问密码

摘要: 设置客户端连接访问redis服务器必须进行身份验证。vi打开编辑redis配置文件:[root@martin etc]# vi /usr/local/redis/etc/redis.conf在约181行找到 # requirepass foobared 修改为:requirepass 123456保存退出,重启redis-server,重新登录客户端登录授权: 方式1.登录同时授权[root@martin ~]# /usr/local/redis/bin/redis-cli -a 123456方式2.先登录后授权[root@martin ~]# /usr/local/redis/bin/red 阅读全文

posted @ 2013-10-31 19:40 马丁传奇 阅读(398) 评论(0) 推荐(0) 编辑

2013年10月30日 #

Redis的键值命令、服务器命令

摘要: Redis提供了丰富的命令对数据库和各种数据类型进行操作,这些命令可以在Linux 终端使用。在编程时,比如各类语言包,这些命令都有对应的方法。 键值命令 服务器命令 获取数据库中所有键名>keys * 获取所有键名(*星号匹配任意字符)>keys nam* 获取所有以“name”开头的键名>keys nam*g 获取所有以“name”开头,并以“g”结尾的键名测试服务器连通性>pingPONG服务器连接成功返回PONG判断数据库中是否存在某个键>exists age判断数据库存中是否存在“age”键返回:存在返回1;不存在返回0;echo输出命令>echo 阅读全文

posted @ 2013-10-30 18:11 马丁传奇 阅读(654) 评论(0) 推荐(0) 编辑

Redis的Sorted Set有序集合命令

摘要: Sorted Set是Set的一个升级版本,它在Set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为有两列的mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。 Sorted Set有序集合添加一个元素>zadd myzset 1 one向myzset集合添加一个顺序号为“1”的元素“one”注: 1.集合中的元素值是唯一的(不允许重复,也没有重复)。 2.重复添加某元素时,虽返回0,但实际会更新了此元素的顺序号值。 3.顺序号值允许重复,即同一顺序号值可以对应多个的元素值(多个元素. 阅读全文

posted @ 2013-10-30 17:47 马丁传奇 阅读(1373) 评论(0) 推荐(0) 编辑