一. 键的生存时间

  1. expire设置一个已经存在的key的生存时间,到时间后redis自动删除这个<k,v>
  2. 命令
  1. expire 设置生存时间(单位/秒)
  2. pexpire设置生存时间(单位/毫秒)
  3. ttl/pttl 查看键的剩余生存时间
  4. persist 取消生存时间
  5. expireat [key] unix时间戳1351858600
  6. pexpireat [key] unix时间戳(毫秒)1351858700000
[注]:应用场景:
(1)限时优惠活动
(2)网站数据缓存,一定时间后更新数据
(3)限制网站访客频率 (eg:每分钟最多访问10次)

二. redis事务

  1. 事务控制原理 :

    当事务开启后, 一条redis操作语句不会立刻执行,而是先缓存起来, 等到事务内的语句全部缓存后, 再一起执行

    事务控制,使得一组操作不被其他线程的操作插入, 并且保持所有语句全部执行或全部不执行
  2. 操作

    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

  1. 作用 :

    当一个客户端连接用watch监控一个变量,随后multi开启事务,在事务开启且未被执行时,若监控的变量值发生变化,则该客户端开启的事务执行失败,exec命令返回nil
  2. exec执行事务后,watch操作自动失效
  3. 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);
}
}

最新文章

  1. Andriod 自定义控件之音频条
  2. 俄罗斯方块(Win32实现,Codeblocks+GCC编译)
  3. BZOJ 2946: [Poi2000]公共串
  4. logback 常用配置详解(二) &lt;appender&gt;
  5. &lt;!DOCTYPE&gt;
  6. SELINUX、Security Access Control Strategy &amp;&amp; Method And Technology Research - 安全访问控制策略及其方法技术研究
  7. 多线线程async与await关键字
  8. 利用EEPROM实现arduino的断电存储
  9. [dpdk] 读官方文档(3)
  10. Ajax请求ashx一般处理程序实现文件下载
  11. GCD介绍(三): Dispatch Sources
  12. Android自定义ActionBar
  13. php微信接口验证写法
  14. Windows下主机名和IP映射设置
  15. cat、tail、head、tee、grep、wc、sort文件操作和过滤
  16. id生成工具类
  17. Maven知识点积累一
  18. ionic+微信js-sdk集成初步融合,在子路由页引入js操作dom节点
  19. Spring boot 注册Filter , Listener, Servlet
  20. shell 的 export命令

热门文章

  1. jq版本1.7以上on方法使用结构
  2. C++ Primer : 第十二章 : 文本查询程序
  3. 用过sessionid防钓鱼
  4. JavaWeb学习记录(十七)——JSP九大隐式对象
  5. Git 基础应用
  6. java多线程之:深入JVM锁机制2-Lock (转载)
  7. Linux文件操作
  8. OCR文字识别软件许可文件被误删了怎么办
  9. JS兼容IE浏览器的方法
  10. linux库