redis将散裂中某个值自增_Redis总结

一 初识Redis

1,Redis 使用内存存储的非关系型数据库,除了各种数据类型的专有命令,还支持批量操作(bulk operation)和不完全(partial)的事务。Memcached 使用内存存储的键值对缓存。MongoDB使用硬盘存储的非关系性数据库.

2,Redis可以存储键与5种不同数据结构类型之间的映射,这5种数据类型分别是String(字符串)、List(列表)、set(集合)、hash(散列)、zSet(有序集合)。zSet某种意义上来说是Redis特有的数据结构。

3, String 字符串命令

(1)set 设置存储在给定键中的值

(2)get 获取存储在给定键中的值

(3)del 删除存储在给定键中的值

4,List 列表命令

(1)Rpush 将给定的值推入列表的右(lpush 左)端

(2)lrance 获取列表在给定范围上的所有值

(3)lindex 获取列表在给定位置的单个元素

(4)lpop 从列表的左端弹出一个值,并返回这个值

5,set 集合命令

(1)sadd 将给定的元素添加到集合

(2)smembers 返回集合包含的所有元素

(3)sismember 检擦给定的元素是否已存在于集合中

(4)srem 如果给定的元素存在于集合中,那么移除此元素

6, hash 散列命令(各个不相同的键无序排列)

(1)hset 在散列里面关联起给定的键值对(注:此命令用于添加键值对到散列,命令会返回一个值来表示给定的键是否已存在)

(2)hget 获取指定散列键的值

(3)hgetall 获取散列包含的所有键值对

(4)hdel 如果给定的键在散列里已存在,那么移除这个键

7, zset 有序集合命令

有序集合和散列一样都用于存储键值对:有序集合的键被称为成员,每个成员都各不相同;而有序集合的值则被称为分值,必须为浮点型。有序集合是Redis里唯一一个既可以根据成员访问分值,又可以根据分值以及分值的排列顺序来访问元素的结构。

(1)zadd 将一个带有分值的成员添加到有序集合里面

(2)zrange 根据元素在有序排列中的位置,从有序集合中获取多个元素

(3)zrangebyscore 获取有序集合在给定分值范围内的所有元素

(4)zrem 如果给定的成员存在于有序集合,那么移除该成员

二 使用Redis构建Web应用

1,Redis 登录与Cookie缓存

2,使用Redis实现购物车

购物车的定义:每一个用户的购物车都是一个散列,这个散列存储了商品的id和商品订购数量之间的映射。对商品数量的验证有web应用程序负责,我们需要做的是当商品的订购数量变化时对购物车进行更新:如果商品订购数量大于0,那么程序会将这个商品的id和定购量添加到散列表里,如果用户订购的商品在散列里已存在,那么新的订购熟练将会覆盖原来的数量;相反如果订购数量不大于0,那么就会从散列里删除该商品。

3,页面缓存

4,数据行缓存

数据缓存成json格式的原因,因为json格式简明易懂,目前所有拥有Redis客户端的编程语言都带有能高效地编码和解码json格式的函数库。所以不用xml。

5,网页分析

三 Redis命令

1,字符串 Redis中的自增和自减命令

INCR INCR key-name 将键存储的值加上1

DECR DECR key-name 将键存储的值减去1

INCRBY INCRBY key-name amount 将键存储的值加上整数amount

DECRBY DECRBY key-name amount 将键存储的值减去整数amount

INCRBYFLOAF INCRBYFLOAF key-name amount 将键存储的值加上浮点数amount

当用户将一个值存储到Redis字符串时,有以下三种情况:如果这个值可以被解释成十进制整数或者浮点数,那么Redis允许用户对这个字符串执行各种INCR*和DECR*操作

如果用户对一个不存在的键或者一个保存了空字符串的键执行了自增或者自减操作,那么Redis会把这个值当做0来处理

如果用户对一个值无法解释为整数或者浮点数的字符串键执行自增或者自减操作,那么Redis将会返回一个错误。

供Redis处理子串和二进制位的命令

APPEND APPEND key-name value 将值value追加到给定键key-name当前存储值的末尾

GETRANGE GETRANGE key-name start end 获取一个由start到end范围内所有字符组成的字串,包括开头和结尾

SETRANGE SETRANGE key-name offset value 将从start偏移量开始的字串设置为给定值

GETBIT GETBIT key-name offset value 将字符串看做二进制位串,并返回位串中偏移量为offset的二进制位的值

SETBIT SETBIT key-name offset value 将字符串看做二进制位串,并将位串中偏移量为offset的二进制位的值设置为value

BITCOUNT BITCOUNT key-name [start end] 统计二进制位串中值为1的二进制位的数量,如果有偏移量,这只统计便宜量内的

BITOP BITOP operation dest-key key-name [key-name…] 对一个或多个二进制位串执行包括并(and) 或(or) 异或(xor) 非(not)在内的任意一种按位运算操作,并将计算得出的结果保存在dest-key键里面

2,列表 常用命令

LINDEX LINDEX key-name offset 返回列表中偏移量为offset的元素

LRANGE LRANGE key-name start end 返回列表从start到end范围内的所有元素,包含start和end元素

LTRIM LTRIM key-name start end 对列表进行修剪,只保留从start到end的元素,start和end元素也会被保留

阻塞式的列表弹出命令以及在列表之间移动元素的命令

BLPOP BLPOP key-name [key-name…..] timeout 从第一个非空列表中弹出位于最左端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现

BRPOP BRPOP key-name [key-name…..] timeout 从第一个非空列表中弹出位于最右端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现

RPOPLPUSE RPOPLPUSE source-key dest-key 从source-key列表中弹出位于最右端的元素,然后将这个元素推入dest-key列表的最左端,并向用户返回这个元素。

BRPOPLPUSE BRPOPLPUSE source-key dest-key timeout 从source-key列表中弹出位于最右端的元素, 然后将这个元素推入dest-key列表的最左端,并向用户返回这个元素。如果source-key为空,那么在timeout秒之内阻塞并等待可弹出的元素出现

3,集合 常用命令

SCARD SCARD key-name 返回集合包含元素的数量

SRANDMEMBER SRANDMEMBER key-name [count] 从集合里随机返回一个或多个元素。当count为整数时,命令返回的随机元素不会重复;为负数时,命令返回的随机数有可能重复

SPOP SPOP key-name 随机的移除集合重点一个元素,并返回移除的元素

SMOVE SMOVE source-key dest-key item 如果集合source-key包含元素item,那么从集合source-key里面移除item,并将item添加到dest-key集合中;如果item被成功移除,那么命令返回1,否者为0

用于组合和处理多个集合的Redis命令

SDIFF SDIFF key-name [key-name…] 返回那些存在于第一个集合。但不存在于其他集合中的元素

SDIFFSTOPE SDIFFSTOPE dest-key key-name [key-name…] 将那些存在于第一个集合,但不存在于其他集合中的元素存储到dest-key键里面

SINTER SINTER key-name [key-name….] 返回那些同时存在于所有集合中的元素(交集运算)

SINTERSTORE SINTERSTORE dest-key key-name [key-name….] 将那些同时存在于所有集合中的元素(交集运算)存储到dest-key键中

SUNION SUNION key-name [key-name….] 返回那些至少存在于一个集合中的元素(并集运算)

SUNIONSTORE SUNIONSTORE dest-key key-name [key-name….] 将那些至少存在于一个集合中的元素存储到dest-key键中

4,散列 用于添加和删除键值对的命令

HMGET HMGET key-name key [key….] 从散列里获取一个或者多个键的值

HMSET HMSET key-name key value [key value….] 为散列里一个或者多个键设置值 (批量操作)

HLEN HLEN key-name 返回散列包含的简直对数量

展示Redis散列更高级特性的命令

HEXISTS HEXISTS key-name key 检查给定的键是否存在于散列中

HKEYS HKEYS key-name 获取散列包含的所有键

HVALS HVALS key-name 获取散列包含的所有值

HINCRBY HINCRBY key-name key increment 将键key存储的值加上整数increment

HINCRBYFLOAT HINCRBYFLOAT key-name key increment 将键key存储的值加上浮点数increment

5,有序集合的常用命令

ZCARD ZCARD key-name 返回有序集合包含的成员数量

ZINCRBY ZINCRBY key-name increment member 将member成员的分值加上increment

ZCOUNT ZCOUNT key-name min max 返回分值介于min和max之间的成员数量

ZRANK ZEANK key-name member 返回成员member在有序集合中的排名

ZSCORE ZSCORE key-name member 返回成员member的分值

有序集合的范围型数据获取命令和范围型删除命令

ZREVRANK key-name member 返回有序集合里成员member的排名,成员按照分值从大到小排列

ZREVRANGE key-name start stop [WITHSCORES] 返回有序集合给定排名范围内的成员,成员按照分值从大到小排列

ZREVRANGEBYSCORE key max min [WITHSCORES] 获取有序集合中介于max和min范围内的成员,并按照分值从大到小返回他们

ZREMRANGEBYRANK key-name start stop 移除有序集合中排名介于start和stop之间的所有成员

ZREMRANGEBY SCORE key-name max min 移除有序集合中排名介于min和max之间的所有成员

ZINTERSTORE dest-key key-count key [key…] [WEIGHTS weight[weight… ]] [AGGREGART SUM|MIN|MAX] 对给定的有序集合执行类似于集合的交集运算

ZUNIONSTORE dest-key key-count key [key…] [WEIGHTS weight[weight… ]] [AGGREGART SUM|MIN|MAX] 对给定的有序集合执行类似于集合的并集运算

6,发布与订阅的命令

SUBSCRIBE channel [channel…] 订阅给定的一个或多个频道

UNSUBSCRIBE [channel [channel…]] 退订给定的一个或多个频道,如果执行时没有给定频道,那么退订所有频道

PUBLISH channel message 像给定的频道发送信息

PSUBSCRIBE pattern [psttern….] 订阅鱼给定的模式相匹配的所有频道

PUNSUBSCRIBE [pattern [psttern….]] 退订给定的模式,如果执行时没有给定任何模式那么退订所有模式

7, Redis事务

Redis的基本事务:需要用到MULTI命令和EXEC命令,这种事务可以让一个客户端在不被其他客户端打断的情况下执行多个命令。和关系数据库中可以进行回滚(rollback)的事务不同,在Redis中,被MULTI命令和EXEC包围的所有命令会一接一个的执行,直到所有的命令执行完毕。当一个事务执行完毕后,Redis才回处理其他客户端。

8,键的过期时间

在使用Redi存储数据时,有些数据仅在一段时间内有用,虽然我们可以在数据过期之后手动删除,但更好的方法是使用Redis提供的键过期操作删除数据。

键过期命令只能为整个键设置过期时间,而没有办法为键里单个元素设置过期时间。

用于处理Redis过期时间的命令

PERSIST key-name 移除键的过期时间

TTL key-name 查看给定键距离过期还有多少秒

EXPIPE key-name seconds 让给定的键在指定的秒数之后过期

EXPIPEAT key-name timestamp 将给定键的过期时间设置为给定UNIX时间戳

PPTL key-name查看给定键距离过期还有多少毫秒

PEXPIPE key-name milliseseconds 让给定的键在指定毫秒数之后过期

PEXPIPEAT key-name timestamp- milliseseconds 将一个毫秒精度的UNIX时间戳设置为给定键的过期时间

四 数据安全与性能保障

1,数据持久化选项

Redis提供两种不同的持久化方法来将数据存储到硬盘里。第一种方法是 快照(snapshotting),它可以将存在于某一时刻的所有数据都写入硬盘里。第二种方法是 只追加文件(append-only file,AOF),它会在执行写命令时,将执行的写命令复制到硬盘里。这两种方法既可单独使用,又可同时使用。

将内存里的数据存储到硬盘上的一个主要原因是为了在以后重用数据,或者是为了防止系统故障而将数据备份到一个远程系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506259.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机软件水平考试什么题型,计算机软考考什么内容

原标题:计算机软考考什么内容计算机软考考试内容有哪些?软考包含三个级别,各级别有多个考试项目,不同的考试项目考试内容也是不同的。软考考试内容大家可以参考各考试项目的考试大纲,包括新版的系统分析师考试大纲、系…

python rest api_Python调用REST API接口的几种方式汇总

相信做过自动化运维的同学都用过REST API接口来完成某些动作。API是一套成熟系统所必需的接口,可以被其他系统或脚本来调用,这也是自动化运维的必修课。 本文主要介绍python中调用REST API的几种方式,下面是python中会用到的库。 - urllib2 -…

mac os 开启redis_关于Redis,学会这8点就够了

一、redis是什么redis是一种支持Key-Value等多种数据结构的存储系统。可用于缓存、事件发布或订阅、高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串、哈希、列表、队列、集合结构直接存取,基于内存,可持久化。二…

python第八周小测验_Python语言程序设计第2周测验+练习题复盘

嘿,这里是目录! 练习网址 https://python123.io/index 测验2 单项选择题 1. 哪个选项不能正确引用turtle库进而使用setup()函数?‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬…

计算机设备管理器驱动,驱动技巧:解决设备管理器中声卡驱动安装不正确的问题...

分类:声卡驱动问题:设备管理器中声卡驱动安装不正确描述:电脑没有声音,有部分朋友是因为声卡驱动没有正确安装,除了我们常见到的设备管理器出现黄色感叹号之外,另一种情况就是让一般人很难发现的问题&#…

lisp对excel其他行列写入_【极简Python 自动化办公】Python写入Excel表格

【极简Python 自动化办公】Python写入Excel表格【极简Python 自动化办公】专栏是介绍如何利用python办公,减少工作负荷。篇幅精炼,内容易懂,无论是否有编程基础,都非常适合。在上次文章中,我们学习了【用python读取exc…

全国大学生计算机应用大赛有什么好处,我校学生喜获第十一届全国大学生计算机应用能力与信息素养大赛冠军...

2021年6月,第十一届全国大学生计算机应用能力与信息素养大赛通过腾讯会议视频全程监控在线作答的形式圆满结束。本届大赛共有来自117所院校932名选手参加全国总决赛。经过校园赛选拔,考前集训,我校共选出3名40本科班同学参加了该赛项&#xf…

java8 lambda map排序_Android兼容Java 8语法特性的原理分析

本文主要阐述了Lambda表达式及其底层实现(invokedynamic指令)的原理、Android第三方插件RetroLambda对其的支持过程、Android官方最新的dex编译器D8对其的编译支持。通过对这三个方面的跟踪分析,以Java 8的代表性特性——Lambda表达式为着眼点,将Android…

lrange是取出所有值并移除么_部落冲突:兵营容量提升,移除超级部队、英雄防御状态冷却时间...

爱生活,爱游戏,大家好,我是阿呆!部落冲突已经好长时间没更新了,这次秋天不再等待,部落冲突第二弹更新来袭,被称之为今年最赞的一次更新,感觉和我一起来看看吧!防御建筑升…

python爬取百度迁徙数据_python爬虫-动态爬取百度迁徙

#1.模拟浏览器发送请求 importrequestsimportjsonimportpandas as pd city_name[] province_name[] value[] url https://huiyan.baidu.com/migration/cityrank.jsonp?dtcountry&id0&typemove_in&date20200315&callbackjsonp_1590404076900_7186798rqrequests…

计算机系统硬盘内存主频,内存时序和频率_内存硬盘-中关村在线

内存时序和频率内存时序是描述内存条性能的一种参数,一般存储在内存条的SPD中。一般数字“A-B-C-D”分别对应的参数是“CL-tRCD-tRP-tRAS”,它们的含义依次为:CAS Latency(简称CL值)内存CAS延迟时间,它是内存的重要参数之一&#…

ubuntun系统mysql数据库同步_Canal 实现 Mysql数据库实时数据同步

简介1.1 canal介绍​ Canal是一个基于MySQL二进制日志的高性能数据同步系统。Canal广泛用于阿里巴巴集团(包括https://www.taobao.com),以提供可靠的低延迟增量数据管道,github地址:https://github.com/alibaba/canalC…

int数组初始化_Java数组

###理解数组Java的数组要求所有的元素为相同数据类型。既可以存储基本类型的数据,也可以存储引用类型的数据,只要所有元素的类型相同就可以。一旦数组的初始化完成,数组在内存中占用的空间就被固定下来,因此数组长度不可变&#x…

pdf无法启动因计算机丢失,解决打开 PDF 文件时出现的文档损坏错误

如果您是客户或企业 IT 专业人员,可以通过设置相应的首选项在计算机上禁用标头验证。您可以在 HKCU 中为单个用户设置此首选项,或者在 HKLM 中在计算机级别为所有用户设置。您可以通过修改相同的 plist 首选项在 Mac OS 上使用相似的方法。如果 AVGenera…

各自然带代表植被_植被垂直带谱?水与热之间的较量。

随着海拔高度的上升,从山麓到山顶年平均气温逐渐降低,生长季节逐渐缩短,同时在一定海拔范围内随着降水量的增加,风速加大,辐射增强,土壤条件也发生相应的变化。在以上因素的综合作用下,植被表现…

量子计算机通用程序,量子计算机程序具有“通用X”?基于拓扑量子纠错码的量子计算机...

源远流长造句不管量子计算机的内部是由什么组成,量子计算机的快速计算都可以归结为应用于量子比特的简单指令序列,即量子计算机内部的基本信息单位。无论这台计算机是由离子链、超导体结还是硅片组成,事实证明,一次只影响一个或两…

ora00936缺失表达式怎么解决_初学者学习AE经常会遇到问题及解决方法,快进来看看吧!~~...

关于软件常见问题请一定要收藏对初学者的你绝对有用首先解决的第一个问题是:软件安装失败提示及解决方案说起原因安装失败是由AE的某些文件没有删除干净(绿化版本极易造成,不建议安装)解决方案(所有Adobe软件通用)如果安装过Adobe公司的软件需要在以下路…

matlab画出周期为2的方波图形 傅立叶级数_高等数学系列R之四:傅立叶级数及变换...

2020-03-23傅立叶级数是将周期函数表示成由多个 (或无穷多个) 不同频率的正弦函数和余弦函数的线性组合,这些不同的频率是不连续的,例如傅立叶级数:,其 sin 内的 x, 3x, 5x 是不连续的。而傅立叶积分是将傅立叶级数延伸到非周期函…

计算机基础知识第八周,计算机系统基础(一):程序的表示、转换与链接(第八周小测验)...

1.假定全局short型数组a的起始地址为0x804908c,则a[2]的地址是( )。A.0x8049092B.0x8049094C.0x8049090D.0x804908e2.假定全局数组a的声明为char *a[8],a的首地址为0x80498c0,i 在ECX中,现要将a[i]取到EAX相应宽度的寄存器中&…

c# getresponsestream返回byte[]_C++模版和C#范型求同存异录(一)sizeof(T)

sizeof(T)从C的模板代码往C#代码移植的时候发现了一个小问题。在C模板代码中 sizeof(T)是一种有效的写法,最终在会编译器展开成sizeof(int),sizeof(float)或者sizeof(myclass),然后在运行时这个代码是有效的,能够执行的。于是我们看上去就可以计算在运行…