3. redis的超时,事务,watch
2016-02-22 00:38
513 查看
一. 键的生存时间
expire设置一个已经存在的key的生存时间,到时间后redis自动删除这个命令
expire 设置生存时间(单位/秒)
pexpire设置生存时间(单位/毫秒)
ttl/pttl 查看键的剩余生存时间
persist 取消生存时间
expireat [key] unix时间戳1351858600
pexpireat [key] unix时间戳(毫秒)1351858700000
[注]:应用场景:
(1)限时优惠活动
(2)网站数据缓存,一定时间后更新数据
(3)限制网站访客频率 (eg:每分钟最多访问10次)
二. redis事务
事务控制原理 :当事务开启后, 一条redis操作语句不会立刻执行,而是先缓存起来, 等到事务内的语句全部缓存后, 再一起执行
事务控制,使得一组操作不被其他线程的操作插入, 并且保持所有语句全部执行或全部不执行
操作
multi 事务开始
exec 事务结束,开始执行事务中的命令
discard 放弃事务
127.0.0.1:6379> multi #开启事务 OK 127.0.0.1:6379> set aaa 1 QUEUED 127.0.0.1:6379> lpush aaa 4 QUEUED 127.0.0.1:6379> get aaa QUEUED 127.0.0.1:6379> exec #执行事务,结果如下 1) OK 2) (error) WRONGTYPE Operation against a key holding the wrong kind of value 3) "1" # 上一条操作失败,但这一条操作成功
[注] : redis在缓存命令时, 会检查命令的语法是否正确(编译时异常),发现编译时异常,redis的事务会让这一组操作全部失败 但是, redis发生运行时异常时,只是这句运行时异常的命令执行失败,而事务里的其他命令会执行成功. 因为,redis没有事务回滚机制,当缓存数据时没发现语法错误,则redis默认命令全部正确(例入lpush str1 a不被检查出来),逐条执行
三. watch
作用 :当一个客户端连接用watch监控一个变量,随后multi开启事务,在事务开启且未被执行时,若监控的变量值发生变化,则该客户端开启的事务执行失败,exec命令返回nil
exec执行事务后,watch操作自动失效
unwatch取消监控
[注]: watch不提供通至客户端回调,只是一次性的控制事务是否被执行
四. Jedis
/** * jedis连接池 */ public class RedisTool { private static JedisPool pool = null; private static String host; private static int port; public static synchronized Jedis getJedis(){ if(pool==null){ JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(100); config.setMaxIdle(10); config.setMaxWaitMillis(10000); config.setTestOnBorrow(true); pool = new JedisPool(config,host,port,10000); } System.out.println("获取链接中。。"); Jedis jedis = pool.getResource(); System.out.println("链接获取成功"); return jedis; } public static void setHostandPort(String host,int port){ RedisTool.host = host; RedisTool.port = port; } public static void returnJedis(Jedis jedis){ pool.returnResourceObject(jedis); } }
相关文章推荐
- redis 学习
- golang--Redis最佳的Go语言驱动
- redis--使用redis-rdb-tools分析redis的内存使用情况
- 在java中使用redis
- Redis替代文件存储session
- C++自制Redis 数据库(十二) 初级存储引擎已经测试完毕
- Redis消息队列发布微博
- spring aop自定义redis缓存实现
- Redis源码解析:07压缩列表
- 2. redis的数据类型
- redis密码设置、访问权限控制等安全设置
- 1. redis简介
- Redis性能测试
- 使用Tomcat+Redis来实现集群部署中的Session共享问题
- zabbix 自动发现监控redis
- centos上安装及配置redis cluster
- Redis教程(十二):服务器管理命令总结
- Redis服务器的启动过程分析
- 让Redis在你的系统中发挥更大作用的几点建议
- 64位Windows下安装Redis教程