Redis还可以做哪些事?】的更多相关文章

在上一篇文章中,讲到了redis五大基本数据类型的使用场景,除了string,hash,list,set,zset之外,redis还提供了一些其他的数据结构(当然,严格意义上也不算数据结构),一起来看看redis还可以做哪些事? 一 Bitmaps 在计算机中,使用二进制做为信息的基础单元,也就是输入的任何信息,最终在计算机底层都会转会为一串二进制的数字.在redis中,提供了Bitmaps来进行位操作.我们可以把Bitmaps想象成一个以位为单位的数组,数组的下标叫做偏移量.使用Bitmaps…
Redis应该说是目前最受欢迎的NoSQL数据库之一了.Redis通常被作为缓存组件,用作缓存数据.不过,除了可以缓存数据,其实Redis可以做的事还有很多.下面列举几例,供大家参考. 1.最新列表 例如新闻列表页面最新的新闻列表,如果总数量很大的情况下,尽量不要使用select a from A limit 10,尝试redis的 LPUSH命令构建List,一个个顺序都塞进去就可以啦.不过万一内存清掉了咋办?也简单,查询不到存储key的话,用mysql查询并且初始化一个List到redis中…
前言 最近公司内部项目的发布流程接入了 GitHub Actions,整个体验过程还是比较美好的:本文主要目的是对于没有还接触过 GitHub Actions的新手,能够利用它快速构建自动测试及打包推送 Docker 镜像等自动化流程. 创建项目 本文主要以 Go 语言为例,当然其他语言也是类似的,与语言本身关系不大. 这里我们首先在 GitHub 上创建一个项目,编写了几段简单的代码 main.go: var version = "0.0.1" func GetVersion() s…
Git 版本控制系統(3) 還沒 push 前可以做的事 转载:http://ihower.tw/blog/archives/2622   這一集要講的是:還沒 push 前可以做的壞事,也就是 reset 跟 rebase. 相較於 SVN 這種 commit 就是送到遠端伺服器,Git 的 commit 其實東西都還是在本地端,所以只要你還沒 push 出去分享給別人,你的 commit logs 是可以修改的!! 這種功能非常的 powerful,可以讓你 undo 和 rewrite c…
iOS专项总结 关于 analyze Clang 静态分析器 Slender Faux Pas Warning Leaks Time Profiler 加载时间 iOS App启动过程 帧率等 如何优雅地显示帧率标签? iOS专项总结 一个应用经过多次迭代后告一段落,接下去我们在技术上还可以做些什么呢?答案是提高代码的整体质量.关于这方面,除了我们常喊的 重构,测试也非常重要. 博主近期给我们的 iOS客户端代码来了一次专项测试.主要从常规的 辅助测试 入手,来了次代码大清理,找到代码中的问题,…
iOS专项总结 一个应用经过多次迭代后告一段落,接下去我们在技术上还可以做些什么呢?答案是提高代码的整体质量.关于这方面,除了我们常喊的 重构,测试也非常重要. 博主近期给我们的 iOS客户端代码来了一次专项测试.主要从常规的 辅助测试 入手,来了次代码大清理,找到代码中的问题,并一一改掉它们.惊喜的是,这对于提高本人的代码水平有很大的帮助.其实,这套代码的质量本身已经很高了,也非常整洁.而这主要得益于严格的代码规范和pull request机制. 关于测试,App常关注的往往是一些功能性的,包…
以往开发中不管是django框架下开发还是其它框架下开发, 只知道在开发阶段要开启debug模式, 却一直没有深究它会我们做哪些事, 今天使用tornado时偶然看到源码中写的很清楚,故写下来加深印象,也分享给想了解的同学. 话不多说,看看源码怎么写的吧, 看完就一目了然了. if  debug为True: 自动加载模式设置为True, 也就是说它会帮我们自动重载代码 网页的模板文件缓存设置为False, 即不保留缓存,方便我们调试代码时看结果 静态文件缓存设置False 出现错误时在网页中显示…
不管你信不信,CSS和JavaScript开始重叠,就像CSS增加了更多功能一新.在我写“你可能不知道的CSS和JavaScript互相影响的5种方式”一文时,人们对于JavaScript和CSS是如何重叠的感到惊讶.今天,我将重点强调你能用CSS完成的7种工作——不需要通过JavaScript或图片. CSS@supports 在使用一些浏览器可能没有的特性时,每一个优秀的前端开发者都需要进行特性测试.特性测试一直以来都是由JavaScript来做的,许多人使用Modernizr,一个由许多测…
转载:安装Ubuntu 15.10后要做的事 原文转载于:http://blog.csdn.net/skykingf/article/details/45267517 Ubuntu 15.10发布了,带来了很多新特性,同样也依然带着很多不习惯的东西,所以装完系统后还要进行一系列的优化. 1.删除libreoffice libreoffice虽然是开源的,但是Java写出来的office执行效率实在不敢恭维,装完系统后果断删掉 [html] view plain copy sudo apt-get…
一,子线程中能做的事: 1,数据逻辑方面计算: 二,子线程中,不能: 1,加载场景相关事件: Application.LoadLevelAsync.Application.LoadLevel等: 2,加载Resources文件下的资源: Resources.Load: 3,实例GameObject: Instantiate(clone);…
为什么位运算可以实现加法(1. 不考虑进位的情况下位运算符中的异或^可以表示+号)(2. 位运算符中的与运算符&和左移运算符<<可以模拟加法中的进位)(3.位运算不仅可以做加法,还可以做其它的乘法减法等:计算机本质是二进制运算) 一.总结 1. 不考虑进位的情况下位运算符中的异或^可以表示+号 2. 位运算符中的与运算符&和左移运算符<<可以模拟加法中的进位 3.位运算不仅可以做加法,还可以做其它的乘法减法等:计算机本质是二进制运算,许多高人和天书都展示了如何用位运…
我曾经在一个活动的博文里说过,男人必须要有一个VPS和一个树莓派,VPS这个东西,以后会是中国男人的一种必备技能,今天又有一个小伙伴请教我VPS的用法,我就简单说说我目前使用的情况.首先我希望你能有点Linux基础. 一.***的VPS非常实惠,推出过年付4刀的低配主机,内存只有64M,可惜如今已经售磬,我使用的是有家主机年付100元的小主机,内存128M,也算是低配了,通常的概念是,如此低的内存,用来跑WordPress肯定很吃力,所以大家只是用来做个上网服务器.关于这个用法,请参考秋水逸冰的…
前言 提起JavaScript,我们也许经常会想到的是,可以用来写Web页面嘛,又或者,会想起Node.js 这个服务端环境,搞前后端同构. 那么,除此之外, JavaScript还可以做什么?   JavaScript可以 通过electron.js建设跨平台电脑桌面应用 通过树莓派和Node.js,沟通硬件 做电视机机顶盒应用,例如借助ntv.js 从Hybird到React-Native,编写跨平台的混合APP,或者原生APP 通过Cocos2d-x 框架或白鹭引擎,JS可以开发流行游戏…
Kali Linux是基于Debian的Linux发行版,预装了许多渗透测试软件,让大家从各种繁琐的软件安装中解脱出来,专注于测试本身. 本文章介绍了如何安装目前最新的2020.1版本,以及安装好后补充安装的一些安全测试工具. 先附上几个kali相关的网站: https://www.kali.org/docs/ https://kali.training/ https://tools.kali.org/ https://forums.kali.org/ https://www.exploit-d…
Redis是一种基于键值对的NoSQL数据库,它的值主要由string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)五种基本数据结构构成,除此之外还支持一些其他的数据结构和算法.key都是由字符串构成的,那么这五种数据结构的使用场景有哪些?一起来看看! 一 字符串 字符串类型是Redis最基础的数据结构,字符串类型可以是JSON.XML甚至是二进制的图片等数据,但是最大值不能超过512MB. 1.1 内部编码 Redis会根据当前值的类型和长度决定使用哪种内…
一.spring整合redis Redis作为一个时下非常流行的NOSQL语言,不学一下有点过意不去. 背景:学习Redis用到的框架是maven+spring+mybatis(框架如何搭建这边就不叙述了) 首先在pom里面添加当前所需要的jar包,有下面几个: ……………… <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <versi…
因为公司的项目需要用到单用户登录,于是今天用redis和cookie给系统添加了单用户登录功能,再次简单记录一下. 单用户登录是为了防止同一账户在不同电脑和不同浏览器里面同时登录.所以我这边的思路是: 1.用户登录A账号时,获取A账号信息和当前浏览器cookie里面的token信息结合起来存到redis数据库. 2.有其他用户登录A账号,更新redis里面的用户信息和token信息,以最后一次登录为准. 3.写拦截器拦截每个请求,在处理请求时,判断当前用户信息与token数据和redis里面的数…
“你要知道,如果你想做好一件事,你就必须自己动手.”Clive一边咕哝着,一边走回自己的房间. Susan原本在埋头工作.她抬起头来,叹了口气.然后起身,跟着Clive穿过走廊,来到他的房间门口.她敲了敲门. “什么事?我现在有点忙!”Clive一边应着,一边坐回他的电脑边上,然后对着Susan说,“给我解释一下框架的这个部分.” “不行.” 他望着她,抬了抬眉毛,说:“不行?我可是你的老板.” “没错!你是经理,但你在质问我的时候不像个经理.你像是闯进来捣乱的,而不是来帮忙的.我是技术主管.如…
之前的文章介绍了Redis的简单数据结构的相关使用和底层原理,这篇文章我们就来聊一下Redis应该如何保证高可用. 数据持久化 我们知道虽然单机的Redis虽然性能十分的出色, 单机能够扛住10w的QPS,这是得益于其基于内存的快速读写操作,那如果某个时间Redis突然挂了怎么办?我们需要一种持久化的机制,来保存内存中的数据,否则数据就会直接丢失. Redis有两种方式来实现数据的持久化,分别是RDB(Redis Database)和AOF(Append Only File),你可以先简单的把R…
写在前面 我一直以来使用redis的时候,很多低烈度需求(并发要求不是很高)需要用到消息队列的时候,在项目本身已经使用了Redis的情况下都想直接用Redis来做消息队列,而不想引入新的服务,kafka和RabbitMQ等: 奈何这兄弟一直不给力: 虽然 Redis 的Pub/Sub 是实现了发布/订阅的,但这家伙最坑的是:丢数据 由于Pub/Sub 只是简单的实现了发布订阅模式,简单的沟通起生产者和消费者,当接收生产者的数据后并立即推送或者说转发给订阅消费者,并不会做任何的持久化.存储操作.由…
第一次做这种javaweb的项目,难免还是要犯很多错误. 大概也知道,redis常常被用来做应用和mysql之间的缓存.模型大概是这样子的. 为了让redis能够缓存mysql数据库中的数据,我写了很多这样类似的代码: 原来的查询商品 public Product selectProductById(int id) { Product product = productMapper.selectByPrimaryKey(id); if (product != null) { String det…
一般来说,安装某个包,某个服务,某个软件时,可能会做以下事情(不一定全部) - 在安装目录: /usr/bin, /usr/lib: /usr/you_specified_bin/, /usr/you_specified_lib, 下安装可执行文件和库文件 - 在/var/certain_software/ 目录下存放软件在运行过程中要写入/读出的东西, 如/var/www/ - 在/etc下放配置文件: 可能只是一个/etc下的配置文件 可能是在/etc下安装一个??.conf配置文件,然后具…
这里记录一些play!框架的文档未提及,但是可以做的一些事playframe版本1.1 1.application.conf文件可以拆分可以把application.conf文件拆成多个,需要在application.conf文件中加上@include.xxx=zzz.confxxx任意命名,xxx.conf放在conf目录下(与application.conf同一目录)如:application.conf@include.site=mysite.conf@include.hibernate=h…
     IT这条漫漫长路注定是孤独的,陪伴我们的只有那些不知冷暖的代码语句和被手指敲打的磨掉了键上的标识的键盘. 之所以可以继续坚持下去,是因为心中有一份永不熄灭的激情. 成功的路上让我们为自己带盐~~~~     想知道SQL语句的强大功能就先让我给你讲讲什么是SQL吧 SQL简介:        SQL能做什么?            专业人士说:在进行数据管理时,如果每次创建数据库,表或者从数据库中读取数据,都需要手动在SQL Server Management  Studio  中进行…
先上图解 一.基本关键词 1)AssetBundle:一种保存“一个或多个资源的转变为某种利于传输等的特殊格式(二进制之类)”的文件.(我这边是使用Unity制作手游的角度来说明) 简称AB. 2)对象池的概念. 3) GameObject:就是资源,直接可以new使用的类对象.简称obj.ab中存放的就是obj. 二.加载 何谓加载,一开始的时候资源全部下载好了,都是二进制的文件,即ab),是不能直接拿来用的.所以,需要你把这个ab中的资源全部抽出来,拿来使用. 1.资源分类 正常游戏,资源是…
整洁的代码 清单项目 分类 使用可以表达实际意图(Intention-Revealing)的名称 有意义的名称 每一个概念只用一个词 有意义的名称 使用方案/问题领域名称 有意义的名称 类应该是比较小的! 类 函数应该是比较小的! 函数 只做一件事 函数 DRY(Don’t Repeat Yourself)原则,(拒绝重复) 函数 用代码来解释自己的做法(译者注:即代码注释) 注释 确定应用了代码格式化 格式 使用异常而不是返回码 异常 不要返回Null 异常 *参考自:http://techb…
Activity mActivity =new Activity() 作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言,Activity本质上也是一个对象,那上面的写法有什么问题呢?估计很多人说不清道不明.Android程序不像Java程序一样,随便创建一个类,写个main()方法就能运行,Android应用模型是基于组件的应用设计模式,组件的运行要有一个完整的Android工程环境,在这个环境下,Activity…
Redis 是一个键值对数据库服务器.基于内存存储数据,它常被用做缓存数据库,用来替代 memcached.官网:https://redis.io/ 什么是持久化? 持久化,指将数据存储到可永久保存的设备中. 例如,将内存中的数据存储到可永久保存的硬盘中. 为什么需要持久化? Redis 基于内存存储,内存掉电后数据会丢失 内存比硬盘贵得多,所以需要将一些不能丢失的数据持久化到硬盘上 甚至,一些特别重要的数据,是需要存到 MySQL 的. Redis 本身有持久化,为什么还要写进 mysql 呢…
转载:https://www.jianshu.com/p/94e0f9ab3f1d Activity mActivity =new Activity() 作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言,Activity本质上也是一个对象,那上面的写法有什么问题呢?估计很多人说不清道不明.Android程序不像Java程序一样,随便创建一个类,写个main()方法就能运行,Android应用模型是基于组件的应用设计…
1 记录在线用户数(活跃用户)? 比如redis中键a的value数据的二进制码是 0110 0110 0001 它总共有12位,在redis的位操作中,二进制中的第几位称为offset. 我们可以这样将这个数据的第10位设置为1: setbit a 10 1 这样,原来的数据就变成了 0110 0110 0101 如果key不存在,也会自动创建. 当然,如果某个位还不存在,redis也会自动填充. 可以通过getbit获取某个二进制位的值 getbit a 10 //获取键a的值上第10位的值…