随笔分类 -  redis

摘要:1、场景描述 比如说我们要做一款APP,需要通过api接口给app提供数据。假设我们是做商城,比如我们卖书的。我们可以想象下这个APP大概有哪些内容: 1)首页:banner区域(可以是一些热门书籍的图片做推广)、本周热卖书籍区域、本月好评书籍区域、活动打折的书籍区域。。。 2)排行榜:比如第一季度 阅读全文
posted @ 2018-07-26 00:06 汤姆雷特 阅读(3744) 评论(0) 推荐(0)
摘要:距离上次写博客有两三个月了,这段时间去了新公司上班,忙了很多。接手了一个项目,刚好用到redis,先总结下遇到的问题(跟redis相关的问题): 1、列表问题 举例:展示商品列表,但是要先展示运营置顶的数据,如果排序的序号一样,则按照id降序排序,就是需要按照sort asc, id desc 来排 阅读全文
posted @ 2017-12-27 00:06 汤姆雷特 阅读(1855) 评论(0) 推荐(9)
摘要:1、简单描述 string类型是redis最基本的类型,而且string类型是二进制安全的,就是说redis的string类型可以包含任何数据,比如jpg图片或者序列化的对象。string类型最大可以存储1G字节数据。另外,string类型可以被部分命令(比如inrc)按照int类型处理。如果只使用 阅读全文
posted @ 2017-09-10 16:25 汤姆雷特 阅读(1280) 评论(0) 推荐(0)
摘要:1、简单介绍 redis的持久化机制是用于把内存的数据存储到硬盘上,作用是当redis服务重启时或者当系统奔溃或故障,那么redis重启可以把数据从硬盘上恢复到内存。 redis的持久化机制有2种,第一种是快照;第二种是aof。 1)快照方式 快照方式是指在一定时间间隔后当写命令达到了配置要求的数量 阅读全文
posted @ 2017-08-29 15:38 汤姆雷特 阅读(425) 评论(1) 推荐(0)
摘要:1、简单描述 redis是一个CS模式的tcp的server,一个client发起了命令操作的请求,然后会阻塞等待服务端的处理和数据的返回。基本上一个命令请求就是2个报文,一去一回。如果多个命令,每次都是2个报文,这样网络传输的开销不小,在批量命令处理的时候,pipeline就可以减少这种网络开销而 阅读全文
posted @ 2017-08-28 17:44 汤姆雷特 阅读(1153) 评论(0) 推荐(0)
摘要:1、简单描述 redis对事务的支持目前还是比较简单。redis只能保证一个client发起的事务中的命令是可以连续的执行,而中间不会插入其他client的命令。由于redis是但现场来处理所有client的请求的,所以这种事务的实现还是容易的。 2、相关操作 1)mulit命令:发起事务。 2)e 阅读全文
posted @ 2017-08-28 16:56 汤姆雷特 阅读(312) 评论(0) 推荐(0)
摘要:1、简单描述 sort命令可以对list、set和sorted set的元素进行排序,然后显示排序的结果,不影响这些类型里面存储的数据的排序。就是说sort可以对list的元素排序,但是执行lrange等命令会发现在内存中存储的元素的顺序没变。 2、相关操作(基于4.0.1版本) sort的格式: 阅读全文
posted @ 2017-08-28 16:22 汤姆雷特 阅读(1428) 评论(0) 推荐(0)
摘要:1、简单描述 hash是一个string类型的field和value的映射表。添加和删除操作都是O(1)(平均)的复杂度。hash类型特别适合用于存储对象。在field的数量在限制的范围内以及value的长度小于指定的字节数,那么此时的hash类型是用zipmap存储的,所以会比较节省内存。可以在配 阅读全文
posted @ 2017-08-27 22:52 汤姆雷特 阅读(37741) 评论(0) 推荐(2)
摘要:1、简单描述 和set类型一样,sorted set也是string类型元素的集合,不同的是每个元素都会关联一个double类型的score。sorted set的实现是skip list和hash table的混合体。当元素被添加到集合中时,一个元素到score的映射被添加到hash table中 阅读全文
posted @ 2017-08-27 21:58 汤姆雷特 阅读(677) 评论(0) 推荐(0)
摘要:1、简单描述 redis的set类型是string类型数值的无序集合。set元素最大可以包含2的32次方减1个元素。由于set类型是通过hash table实现(旧版本是这样,新版本不确定是不是改用了skip list来实现),所以添加/删除/查找的时间复杂度都是O(1)。hash table有个问 阅读全文
posted @ 2017-08-27 20:59 汤姆雷特 阅读(1820) 评论(0) 推荐(0)
摘要:1、简单介绍 redis的list类型其实就是一个每个元素都是string类型的双向链表。所以lpush、rpush、lpop和rpop命令的时间复杂度是O(1),list会记录链表的长度,所以llen操作也是O(1)的时间复杂度。链表的最大长度是2的32次方减1,。list类型可以用作队列或者栈。 阅读全文
posted @ 2017-08-27 17:33 汤姆雷特 阅读(1042) 评论(0) 推荐(0)
摘要:1、简单描述 redis本质上是一个key-value db,value可以有多种类型(string、hash、set、sorted set、list等),本章节不讲这些类型的命令,这里是讲跟key相关的命令操作。 key本身是string类型,不支持边界符,比如my key 这种含有空格的名字是会 阅读全文
posted @ 2017-08-27 13:41 汤姆雷特 阅读(440) 评论(0) 推荐(0)
摘要:我在windows上远程连接linux上的redis(我虚拟机上的)遇到了问题,我是在windows上php代码中的调用redis接口来远程连接的,代码中ping()的时候报错。 服务器端我确定了iptables和selinux是关闭的,我的redis-server有启动,因为ps能查到,端口637 阅读全文
posted @ 2017-08-27 00:23 汤姆雷特 阅读(4232) 评论(0) 推荐(0)
摘要:1、选定一个稳定版本 打开redis官网的下载页 https://redis.io/download 选一个稳定版本安装,当前的最新稳定版本是4.0.1 2、安装 切换到linux系统的/usr/local/src目录下载redis安装包: make之后是ok的,提示要进行make test,然后报 阅读全文
posted @ 2017-08-26 23:19 汤姆雷特 阅读(220) 评论(0) 推荐(0)