注:如有侵权,请分割删除
字符串类型:
String类型是Redis能与键关联的最简略的数据类型,它是Memcached当中仅有的数据类型,因而能够很快地被初学者学习。Redis的Key名称也是一个字符串,当咱们应用字符串类型作为其对应的值时,咱们能够依据Key名称来查找映射对应的值。Redis字符串是二进制平安的,这意味着一个Redis字符串能蕴含任意类型的数据,例如: 一张JPEG格局的图片或者一个序列化的Ruby对象。一个字符串类型的值最多能存储512MB的内容。
利用场景:
高速缓存HTML片段或者页面;高速缓存关系型数据库查问的数据后果;高速缓存会话控制数据;分布式锁;避免反复提交;存储设置固定格局的字符串序列(例如:工夫序列)统计网站访问者数量;每天注册用户数;限度API在某一时段的拜访次数;用户签到;统计沉闷用户;用户在线状态。
Redis字符串类型的根本命令
- Redis字符串类型键的设置
- Redis字符串类型键的查问
- Redis字符串类型键的计数操作
- Redis字符串类型键的二进制操作
Redis字符串类型键的设置
我的项目案例:
案例一:高速缓存(HTML / DATA / SESSION)
案例二:分布式锁
案例三:避免反复提交
案例四:存储设置固定格局的字符串序列(例如:工夫序列)
命令名称:set
语法: set key value [EX seconds] [PX milliseconds] [NX|XX]性能:给一个key增加字符串类型的值,如果该key曾经存在,值会被新值笼罩,不论是什么类型的key。SET设置后的键,之前的生存工夫会被抛弃。选项:EX seconds(生存工夫:秒) / PX milliseconds(生存工夫:毫秒) / NX(仅在键不存在时设置) / XX(仅在键存在时设置)返回值:如果设置胜利,返回OK。如果设置失败,返回nil。
命令名称:mset
语法: mset key value [key value ...]性能:同时设置多个key,如果key存在会笼罩。mset 是原子的,所有键会同时设置胜利或者失败。返回值:胜利返回ok
命令名称:setex
语法: setex key seconds value性能:给一个键设置为字符串类型,并指定生存工夫(单位:秒)。该命令是原子的,如果设置失败或者指定生存工夫失败,会复原初始状态。返回值:如果设置胜利,返回OK。如果设置失败,返回错误信息。
命令名称:psetex
语法: psetex key milliseconds value性能:给一个键设置为字符串类型,并指定生存工夫(单位:毫秒)。该命令是原子的,如果设置失败或者指定生存工夫失败,会复原初始状态。返回值:如果设置胜利,返回OK。如果设置失败,返回错误信息。
命令名称:setnx
语法: setnx key value性能:如果key不存在,将其设置为字符串类型。返回值:如果设置胜利,返回1。如果设置失败,返回0。
命令名称:msetnx
语法: msetnx key value [key value ...]性能:同时设置多个key,如果其中一个key存在则设置失败,不思考其余键是否存在。msetnx 是原子的,所有键会同时设置胜利或者失败。返回值:如果所有键设置胜利返回1,如果所有键设置失败返回0。
命令名称:setrange
语法: setrange key offset value性能:批改或者设置一个键的字符串类型值的内容。如果键不存在,就设置一个新的,并且补充offset个NULL,再退出value,换句话说,值为 “offset个NULL+value”。如果键曾经存在,从该键值offset处开始插入value,如果offset的值大于该键字符串长度,用NULL补充到该长度,再开端插入value。返回:胜利返回字符串长度,失败返回错误信息注意事项:offset最大值229 -1(536870911)。
命令名称:append
语法: append key value性能:如果key存在,则在前面追加value的内容。如果key不存在,会创立一个key,并设置其值为空字符串,并在后追加value的内容。返回:追加胜利当前的字符串长度。
Redis字符串类型键的查问
命令名称:get
语法: get key性能:查问key的值。返回值:如果键不存在,返回nil。如果key不是String类型,返回错误信息。
命令名称:mget
语法: mget key [key …]性能:查问所有key的值。返回值:列出所有键的值,绝不会执行失败,如果键是String类型,返回其值,如果键不存在或者不是String类型,返回 nil。
命令名称:getrange
语法: getrange key start end性能:查问一个字符串的子串,子串的内容取决于start和end(两个参数都必须),start和end能够为正数,-1代表最初一个字符,-2代表倒数第二个字符。返回值:如果key存在,返回字符串的子串内容,如果key不存在,返回空字符串,如果key不是String类型,返回错误信息。
命令名称:strlen
语法: strlen key性能:返回key的字符串长度。返回值:字符串长度,如果key不存在返回0,如果不是字符串类型,返回错误信息。
命令名称:getset
语法: getset key value性能:原子地给一个key设置value并且将旧值返回。返回值:如果key不是字符串类型,返回一个谬误。利用场景:获取计数器并且重置为0。
Redis字符串类型键的计数操作
我的项目案例:
案例一:统计网站访问者数量
案例二:每天注册用户数
案例三:限度API在某一时段的拜访次数
命令名称:incr
语法: incr key性能:将 key 中贮存的数字值增一,如果 key 不存在,那么 key 的值会先被初始化为 0,而后再执行 incr操作。本操作的值限度在 64 位(bit)有符号数字示意之内。Key的值必须是整型。返回值:如果值蕴含谬误的类型,或字符串类型的值不能示意为数字,返回一个谬误 / 如果执行胜利,返回执行 incr 命令之后 key 的值。
命令名称:incrby
语法: incrby key increment 性能:将 key 所贮存的值加上增量 increment,如果 key 不存在,那么 key 的值会先被初始化为 0 ,而后再执行 incrby命令。本操作的值限度在 64 位(bit)有符号数字示意之内。Key的值必须是整型。返回值:如果值蕴含谬误的类型,或字符串类型的值不能示意为数字,返回一个谬误 / 如果执行胜利,返回执行 INCRBY 命令之后 key 的值。
命令名称:incrbyfloat
语法: incrbyfloat key increment 性能:为 key 中所贮存的值加上浮点数增量 increment,如果 key 不存在,那么 incrbyfloat 会先将 key 的值设为 0 ,再执行加法操作。能够应用迷信计数法。返回值:执行胜利返回更新当前的值。
命令名称:decr
语法: decr key性能:将 key 中贮存的数字值减一,如果 key 不存在,那么 key 的值会先被初始化为 0,而后再执行 DECR 操作。本操作的值限度在 64 位(bit)有符号数字示意之内。Key的值必须是整型。返回值:如果值蕴含谬误的类型,或字符串类型的值不能示意为数字,返回一个谬误 / 如果执行胜利,返回执行 decr命令之后 key 的值。
命令名称:decrby
语法: decrby key increment 性能:将 key 所贮存的值加上增量 decrement,如果 key 不存在,那么 key 的值会先被初始化为 0 ,而后再执行 decrby 命令。本操作的值限度在 64 位(bit)有符号数字示意之内。Key的值必须是整型。返回值:如果值蕴含谬误的类型,或字符串类型的值不能示意为数字,返回一个谬误 / 如果执行胜利,返回执行 decrby命令之后 key 的值。
Redis字符串类型键的二进制操作
我的项目案例:
案例一:用户签到
案例二:统计沉闷用户
案例三:用户在线状态
命令名称:setbit
语法: setbit key offset value性能:对 key 所贮存的字符串值,设置或革除指定偏移量上的位(bit),位的设置或革除取决于 value 参数,能够是 0 也能够是 1 。字符串会进行舒展(grown)以确保它能够将 value 保留在指定的偏移量上。当字符串值进行舒展时,空白地位以 0 填充。offset 参数必须大于或等于 0 ,小于 2^32 (bit 映射被限度在 512 MB 之内)。返回值:当 key 不存在时,主动生成一个新的字符串值。指定偏移量原来贮存的位。
命令名称:getbit
语法: getbit key offset性能:对 key 所贮存的字符串值,获取指定偏移量上的位(bit)。返回值:当 offset 比字符串值的长度大,或者 key 不存在时,返回 0 。字符串值指定偏移量上的位(bit)。
命令名称:bitcount
语法: bitcount key [start] [end]性能:计算给定字符串中,被设置为 1 的比特位的数量。个别状况下,给定的整个字符串都会被进行计数,通过指定额定的 start 或 end 参数,能够让计数只在特定的位上进行。返回值:不存在的 key 被当成是空字符串来解决,因而对一个不存在的 key 进行 BITCOUNT 操作,后果为 0 / 被设置为 1 的位的数量。
命令名称:bitop
语法: bitop operation destkey key [key ...]性能:对一个或多个保留二进制位的字符串 key 进行位元操作,并将后果保留到 destkey 上。OPERATION:能够是 AND 、 OR 、 NOT 、 XOR 这四种操作中的任意一种。除了 NOT 操作之外,其余操作都能够承受一个或多个 key 作为输出。留神:当 bitop 解决不同长度的字符串时,较短的那个字符串所短少的局部会被看作 0 。空的 key 也被看作是蕴含 0 的字符串序列。返回值:保留到 destkey 的字符串的长度,和输出 key 中最长的字符串长度相等。
命令名称:bitpos
语法: bitpos key bit [start] [end]性能:返回字符串外面第一个被设置为1或者0的bit位。返回值:命令返回字符串外面第一个被设置为1或者0的bit位。如果咱们在空字符串或者0字节的字符串外面查找bit为1的内容,那么后果将返回-1。
命令名称:bitfield
语法: bitfield key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP|SAT|FAIL]性能:本命令会把Redis字符串当作位数组,并能对变长位宽和任意未字节对齐的指定整型位域进行寻址。在实践中,能够应用该命令对一个有符号的5位整型数的1234位设置指定值,也能够对一个31位无符号整型数的4567位进行取值。相似地,在对指定的整数进行自增和自减操作,本命令能够提供有保障的、可配置的上溢和下溢解决操作。返回值:get 以后偏移地位所在的值。set 以后偏移量的旧值。incrby 以后偏移量的旧值。nil 设置失败。值的类型有误或者命令语法有误返回谬误。