redis
Mikaelemmmm
web开发工程师,喜欢研究各种技术
展开
-
redis 的setnx,数据库读取缓存
在 Redis 里,所谓 SETNX,是「SET if Not eXists」的缩写,也就是只有不存在的时候才设置,可以利用它来实现锁的效果,不过很多人没有意识到 SETNX 有陷阱!比如说:某个查询数据库的接口,因为调用量比较大,所以加了缓存,并设定缓存过期后刷新,问题是当并发量比较大的时候,如果没有锁机制,那么缓存过期的瞬间,大量并发请求会穿透缓存直接查询数据库,造成雪崩效转载 2017-07-10 09:35:40 · 1061 阅读 · 0 评论 -
php监听redis key失效触发回调事件
一、需求分析: 1、设置了生命时间的key,过期的时候能不能提示,能够监听过期的key? 2、怎样用redis实现定时任务? 二、应用场景: 在我们程序中经常会有需要定时执行的程序,比如:商品下单后半小时内不支付自动撤单等等。 最简单粗暴的办法,就是写一个程序,让它定时执行,但是这样对服务器压力比较大。 这里说的是用Redis去实现这样的一个功能。 三、Redis键空间通知介绍 在 Redis 的...原创 2018-05-16 17:49:40 · 13990 阅读 · 7 评论 -
redis集群(主从配置)
redis配置主从很简单一主多从: master :redis-server --port 6379 slave1 :redis-server --port 6380 --slaveof 127.0.0.1 6379 slave2 :redis-server --port 6381 --slaveof 127.0.0.1 6379客户端: client1 : redis-cli -原创 2018-02-03 17:23:25 · 165 阅读 · 0 评论 -
redis持久化备份
最近在搞redis备份,所以就记录一下。大家都知道redis持久化有两种方式RDB与AOF。RDB就是按照一定规则,符合规则就执行快照,如果在下一次执行快照执行前服务器挂了,那就惨了,距离上一次快照到当前服务器挂掉这一段时间的数据就没了,所以RDB适合做一些不太重要的数据备份;AOF就是当客户端输入命令时,redis在执行命令同时会将该命令写入备份文件中,实时性备份,不会像RDB那样丢数据原创 2018-01-27 10:36:50 · 381 阅读 · 1 评论 -
redis脚本LUA
1、数据类型 nil : 为空null string :字符串 number:数字 boolean:布尔 table:数组、字典 function:函数2、变量 2.1 全局变量 :默认值为nil,无需声明,直接使用 a = 1; //为全局变量赋值 print(b); //nil a = nul;//原创 2018-01-23 23:15:30 · 308 阅读 · 0 评论 -
Redis常用命令
一、不常用但实用的命令1、string set、mset、append (向某个key的字段后面追加)、get、mget、 getset、expire、exists2、hash hset、hmset、hsetnx、hget、hmget(获取多个)、hgetall、 hdel、hexists、hincrby3、list列表 lpush、rpush、lpop、rpop、原创 2018-01-23 22:32:25 · 205 阅读 · 0 评论 -
redis、mysql、tcp/ip
一、redis1、Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因原创 2018-01-05 18:59:31 · 407 阅读 · 0 评论 -
linux安装redis以及配置文件修改
一.下载安装 1. 官网http://redis.io/ 下载最新的稳定版本,这里是3.2.0 2. sudu mv 到 /usr/local/ 3. sudo tar -zxf redis-3.2.0.tar 解压文件 4. 进入解压后的目录 cd redis-3.2.0 5. sudo make test 测试编译 6. sudo make install 安装成功!二. 服务配原创 2017-09-17 19:13:11 · 14727 阅读 · 0 评论 -
redis内存锁,PHP防止并发操作
1、redis锁代码: /** * 获取锁 * @param String $key 锁标识 * @param Int $expire 锁过期时间 * @return Boolean */ public function lock($key, $expire=5){ $is_lock = $this->原创 2017-08-28 19:01:55 · 2718 阅读 · 0 评论 -
redis的setnx锁到了超时时间失效,并发的问题
使用Redis的 SETNX 命令可以实现分布式锁,下文介绍其实现方法。SETNX命令简介命令格式SETNX key value将 key 的值设为 value,当且仅当 key 不存在。 若给定的 key 已经存在,则 SETNX 不做任何动作。 SETNX 是SET if Not eXists的简写。返回值返回整数,具体为 -转载 2017-07-10 11:06:51 · 33561 阅读 · 5 评论 -
redis分布式锁(非单机redis下的)
用Redis构建分布式锁-RedLock(真分布)在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段。 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简单的实现其实只需采用稍微增加一点复杂的设计就可以获得更好的可靠性。 这篇文章的目的就是尝试提出一种官方权威的用Redis实现分布式锁管理器的算法,我们把这个算法称为RedL...转载 2018-10-11 18:14:55 · 176 阅读 · 0 评论