Redis
文章平均质量分 77
学习笔记666
这个作者很懒,什么都没留下…
展开
-
PHP 中操作 Redis
1.安装 PHP扩展模块tar zxvf owlient-phpredis-2.1.1-1-g90ecd17.tar.gzcd owlient-phpredis-90ecd17/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-config make && make install原创 2016-03-01 14:15:56 · 401 阅读 · 0 评论 -
Redis集群 - cluster集群、数据分片
在前面配置了一个简单的redis主从架构: 我们现在进入真正的集群配置: 如果我们的数据特别大,并发压力特别高,我们的redis主服务器也会有很大压力,所以我们需要多个主从,也就是集群的架构。 在mysql里,多个主从的架构下,我们借助了中间价mycat。比如,我们插入一条新闻数据,这个中间价mycat就是通过一定算法来决定这条新闻是插入哪一个服务器中。redis其实在集群里面也能做到这一点,原创 2017-04-25 15:40:33 · 6586 阅读 · 0 评论 -
Linux安装redis
Linux安装redisredis官网地址: https://redis.io/首页我们可以看见 Download it,此处下载最新版本的Redis。 右键 复制链接地址。目前Redis已经到了版本4.0.9了,复制下来的链接地址为: http://download.redis.io/releases/redis-4.0.9.tar.gz安装redis文档地址: http...原创 2018-06-01 14:10:01 · 289 阅读 · 0 评论 -
缓存穿透处理
缓存穿透处理缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案 有很多种方法可以有效地解决缓存穿透问题,最常见的则是采用布隆过滤器,将所有可能存在的数据哈...转载 2018-08-20 10:18:04 · 264 阅读 · 0 评论 -
redis简学 - list数据类型
redis简学 - list数据类型最基础的命令lpush key value 从键为key的列表头部开始插入,值是valuellen key 获取键为key的列表的长度#举例lpush users zhangsanlpush users jacklpush users lily# 查看长度llen users# 取出列表中所有数据lrange use...原创 2018-08-20 10:52:04 · 147 阅读 · 0 评论 -
批量插入缓存数据到redis
批量插入缓存数据到redis缓存预热就是系统上线后,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!如果数据量不大,在系统启动前直接灌入。比如写个php脚本或者shell脚本来完成。我们这里看看redis有没有什么好办法? redis有个pipe mode,可以根据redis协议的格式生成一个文件,...原创 2018-08-20 11:57:33 · 3537 阅读 · 0 评论 -
hash数据类型
hash数据类型当缓存内容有多个字段,且回发生变化时,此时String类型就不适合了。 Hash数据类型还常用于商品缓存。最基本的命令#设值hset key field vale#取值hget key field#设置key为new101, 字段名为news_id,对应的值为101hset new101 news_id 101#设置key为new101, 字段名...原创 2018-08-20 13:35:46 · 4810 阅读 · 0 评论 -
缓存超时策略:手动清除"分体式"新闻缓存
https://blog.csdn.net/github_26672553/article/details/81869719 https://blog.csdn.net/github_26672553/article/details/81908780前面我们学习了redis的Hash数据类型和Sorted Set数据类型,来实现新闻数据的“分体式缓存”。把新闻内容用Hash缓存,新闻点击量用...原创 2018-08-24 11:52:04 · 423 阅读 · 0 评论 -
缓存超时策略(2):缓存过期时自动触发事件
https://blog.csdn.net/github_26672553/article/details/82014804 用redis的订阅/发布功能来做的好处是 如果我们是多个服务器节点,每个节点都订阅,这样只要向频道发送命令,每个节点都会执行。 redis 2.8之后有一个功能叫做 Keyspace通知https://redis.io/topics/notificatio...原创 2018-08-24 15:29:24 · 3117 阅读 · 0 评论 -
redis:Sorted Set数据类型
https://blog.csdn.net/github_26672553/article/details/81869719 前面我们使用Hash数据类型来缓存新闻数据,把新闻内容拆分成各个字段。以id为101的新闻为例: 新闻ID:101; 新闻标题:xxx; 其他字段:xxxx; 新闻点击量:99有个需求是:当每次访问到这条新闻的时候,点击量是需要+1的。 使用Hash数据...原创 2018-08-21 15:43:48 · 201 阅读 · 0 评论 -
redis list类型实现最简单的队列
消息队列的好处提高响应速度、解耦、稳定性(故障处理)、可扩展性、有序性、异步性。redis实现消息队列方法1redis有个list类型,可以用来实现一定程度上的消息队列。如果我们要开发一个电商网站,其中一个很重要的模块就是订单模块(包括订单数据入库、商品库存减少 等)。系统大一点儿(有逼格点儿),就会考虑把订单数据入库和库存操作分开为单独的服务,比如订单服务里完成订单数据入口,然后调用商...原创 2018-09-25 16:30:43 · 5385 阅读 · 1 评论 -
redis:key设计原则
redis与关系型数据库的适合场景场景:书有标签,一本书可能有多个标签。一个标签可能对应多本书。如果是关系型数据库来存储:create table book( id int, title char(20))engine myisam charset utf8;insert into book values(5,'PHP经典'),(6,'Ruby实战'),(7,'MySQL基础'),...原创 2018-10-03 11:14:12 · 10159 阅读 · 0 评论 -
Redis与MySQL中事务的区别
1、mysql中只有使用了InnoDB引擎的数据库或表才支持事务;2、使用“事务”的目的是:统一管理insert,update,delete这些写操作,以此来维护数据的完整性。事务命令mysql:begin #显示底开启一个事务commit #提交事务,对数据库进行的所有写操作变为永久性的rollback #结束用户的事务,并撤销正在进行的所有未提交的写操作redis...原创 2018-09-29 09:06:15 · 5075 阅读 · 0 评论 -
redis集群 - 使用php连接redis集群、redis自定义命令封装
在前面我们使用redis-trib创建了集群 redis官方文档: https://redis.io/topics/cluster-tutorial (这里我们使用的127.0.0.1,我们用php测试集群需要改成具体的地址)./redis-trib.rb create --replicas 1 10.211.55.13:6379 10.211.55.13:6380 \10.211.55.1原创 2017-05-03 12:53:01 · 2086 阅读 · 0 评论 -
Redis集群 - redis主从配置初步:主从从配置、哨兵配置
我们前面学习了简单的redis主从配置(结合稍兵),其实在我们的实际开发中要真正的达到“高可用”,”稍兵”还会部署多个,通过配置多个稍兵同时产生警报,那么我们再进行主从的切换。前面我们配置了一个主机一个从机(用端口区分6379、6380),我们这里先再配置一个从机: 可能需要参考redis集群第一篇的配置。 6379是主机,6380是从机,我们先拷贝一份配置文件: cp 6380.conf 6原创 2017-04-18 11:00:03 · 800 阅读 · 0 评论 -
redis设置连接密码
vi /usr/local/redis/etc/redis.conf设置连接密码# requirepass foobaredrequirepass yourpassword重启进程pkill redis-server/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 直接连接进入后,无权操作任何东西 /us原创 2016-03-01 14:12:34 · 4789 阅读 · 0 评论 -
redis数据类型 - set类型
set 是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作,操作中key 理解为集合的名字。值不能重复。Redis 的set 是string 类型的无序集合。set 元素最大可以包含(2的 32次方)个元素。关于 set集合类型除了基本的添加删除操作,其他有用的操作还包含集合的取并集(union),交集(intersect转载 2016-03-01 13:40:39 · 426 阅读 · 0 评论 -
redis数据类型 - Hash类型
hash类型,是一个string类型的field和value的映射表。hash存放的是键值对,可以很方便的存放对象。常用操作hset 设置hash field为指定值,如果key不存在,则先创建:hset user1 name jackhset uer1 age 18hget 获取指定的hash field:hget user1 namehget user1 age原创 2016-03-01 11:47:07 · 1659 阅读 · 0 评论 -
redis的安装
安装将 redis-2.4.17.tar.gz上传到/lamp目录下: cd /lamptar -zxvf redis-2.4.17.tar.gzcd redis-2.4.17makecd srcmake install提示如下信息说明安装成功: mkdir -p /usr/local/bincp -pf redis-server /us原创 2016-02-28 20:39:44 · 462 阅读 · 0 评论 -
redis数据类型 - String
String类型最简单的类型,一个key对应一个value,string类型是二进制安全的。redis是string可以包含任何数据,比如jpg图片或序列化的对象相关操作set 设置一个 key-value键值对:set name jacksetnx nx是not exist的意思,不存在才添加,成功返回1,失败返回0,说明key已存在:setnx name jack原创 2016-02-29 11:07:13 · 437 阅读 · 0 评论 -
redis数据类型 - list类型
list 类型list 是一个链表结构,主要功能是push、pop、获取一个范围的所有值等。操作中的key理解为链表的名字。redis的list类型其实就是一个每个子元素都是string类型的双向链表。链表的最大长度是 2的32次方。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素。这使得list既可以用作栈,有可以用作队列。lpush 在k原创 2016-03-01 13:09:48 · 541 阅读 · 0 评论 -
memcache缓存服务器01
linux下如何安装memcache服务器1、安装(安装之前下载解压安装包)./configure && make && make install2、启动memcache -d -m 2048 -u root -l 127.0.0.1 -p 11211#-m 设置内存大小# -p 设置端口3、停止pkill memcached查看memcache服务状态#查端口netstat -tunpl |原创 2017-02-24 14:52:21 · 428 阅读 · 0 评论 -
redis常见使用场景下PHP实现
基于redis字符串string类型的简单缓存实现<?php//简单字符串缓存$redis = new \Redis();$redis->connect('127.0.0.1',6379);//缓存数据$redis->set('cache_key',json_encode(['data'=>'这是缓存数据']));//获取缓存数据$data = $redis->get('cache_key'转载 2017-02-25 09:03:27 · 6205 阅读 · 1 评论 -
Redis集群 - 配置最简单的Redis主从
要求: 1、你已经知道redis是什么 2、熟悉Linux基本操作(CentOS 6.5) 3、有单机redis开发相关经验 4、有主观能动性,至少熟练百度的使用redis主从配置初步:2个节点主从如果我们redis的压力很大,如果我们的并发高到我们读数据和写数据都有了很大压力。 那么我们可能就需要把redis分开部署,并且配置为一个『主从』的状态。 首先我们要安装red原创 2017-04-08 10:57:06 · 32030 阅读 · 3 评论 -
Redis集群 - redis主从配置初步:简单主从切换(哨兵模式)
在我们前面完成了一个非常简单的redis主从。 http://blog.csdn.net/github_26672553/article/details/69568259 我们是配置在一台机器上,实际生产环境当中,我们都是分开部署的,不会部署到一台机器上。问题:主从配置,其中一台宕机了,咋办?官网给我们提供了一个工具sentinel(哨兵)。1、sentinel在哪里?回忆一下,我们下载的red原创 2017-04-08 14:31:56 · 7364 阅读 · 3 评论 -
轻松快速入门mysql的小基友redis
redis的安装可以参考这篇文章: http://blog.csdn.net/github_26672553/article/details/695682591、redis.conf是redis的配置文件 一般我们都是把配置文件放到/etc/目录下,方便我们以后维护。#拷贝配置文件cp /你的目录/redis.conf /etc/这样在启动的时候,不必指定配置文件路径了#启动redis服务端原创 2017-04-08 16:51:22 · 622 阅读 · 0 评论 -
mysql颠覆实战课程 - redis存储用户表信息
前面我们已经学习了redis中的String数据类型: http://blog.csdn.net/github_26672553/article/details/69680548现在我们将要学到redis的第二种数据类型:hash hash顾名思义,它也是一个key-value键值对。 使用命令: hset 表名 字段key 字段value hset user_main 1 zh原创 2017-04-12 16:53:24 · 5509 阅读 · 1 评论 -
缓存穿透优化:缓存空对象
缓存穿透优化:缓存空对象所谓的"缓存穿透"是指查询一个根本不存在的数据,缓存层和存储层都不会命中。缓存穿透将导致不存在的数据每次请求都要到存储层去查询,失去了缓存保护后端的意义。造成缓存穿透的基本原因有两个:自身业务代码或者数据出现问题;一些恶意攻击、爬虫等造成大量空命中。缓存空对象会有2个问题:1、空值做了缓存,意味着缓存层中存了更多的键,需要更多内存空间。比较有效的方法是针对这类数...原创 2019-05-16 16:08:15 · 1965 阅读 · 0 评论