命令

 描述

 复杂的

 返回值

SET key value [EX seconds]

[PX milliseconds]

[NX|XX]

将字符串值value关联到key。如果key已经持有其他值,SET就覆写旧值,无视类型。对于某个原本带有生存时间的键来说, 当SET命令成功在这个键上执行时,这个键原有的TTL将被清除。

l   EX second:设置键的过期时间为secon秒。SET key value EX second效果等同于SETEX key second value 。

l   PX millisecond:设置键的过期时间millisecond毫秒。SET key value PX millisecond效果等同于PSETEX key millisecond value。

l   NX:只在键不存在时,才对键进行设置操作。SET key value NX效果等同于SETNX key value 。

l   XX:只在键已经存在时,才对键进行设置操作。

GET key

返回ke所关联的字符串值。如果key不存在那么返回特殊值nil 。假如 key 储存的值不是字符串类型,返回一个错误,因为GET只能用于处理字符串值。

O(1)

DECR key

DECRBY key decrement

如果key不存在,那么key的值会先被初始化为0 ,然后再执行DECR 操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。本操作的值限制在64位(bit)有符号数字表示之内。

O(1)

INCR key

INCRBY key increment

INCRBYFLOAT key incre

如果 key不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

O(1)

APPEND key value

如果key已经存在并且是一个字符串,APPEND命令将value追加到key原来的值的末尾。如果 key不存在, APPEND就简单地将给定key设为 value,就像执行SET key value一样

平摊O(1)

追加value之后, key中字符串的长度。

BITCOUNT key [start] [end]

计算给定字符串中,被设置为1的比特位的数量。一般情况下,给定的整个字符串都会被进行计数,通过指定额外的start或end参数,可以让计数只在特定的位上进行。start和end参数的设置和 GETRANGE命令类似,都可以使用负数值:比如-1表示最后一个字节, -2表示倒数第二个字节,以此类推。不存在的key被当成是空字符串来处理,因此对一个不存在的 key进行BITCOUNT操作,结果为 0。

O(N)

被设置为1的位的数量。

SETBIT key offset value

GETBIT key offset

对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。位的设置或清除取决于 value 参数,可以是 0 也可以是 1 。当 key 不存在时,自动生成一个新的字符串值。字符串会进行伸展(grown)以确保它可以将 value 保存在指定的偏移量上。当字符串值进行伸展时,空白位置以 0 填充。offset 参数必须大于或等于 0 ,小于 2^32 (bit 映射被限制在 512 MB 之内)。

O(1)

指定偏移量原来储存的位。

BITOP operation destkey key [key ...]

对一个或多个保存二进制位的字符串key进行位元操作,并将结果保存到 destkey 上。operation 可以是 AND 、 OR 、 NOT 、 XOR 这四种操作中的任意一种.当 BITOP 处理不同长度的字符串时,较短的那个字符串所缺少的部分会被看作 0 。空的 key 也被看作是包含 0 的字符串序列。

O(N)

保存到destkey的字符串的长度,和输入 key 中最长的字符串长度相等。

GETRANGE key start end

返回 key中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。负数偏移量表示从字符串最后开始计数, -1 表示最后一个字符, -2 表示倒数第二个,以此类推。GETRANGE 通过保证子字符串的值域(range)不超过实际字符串的值域来处理超出范围的值域请求。

O(N), N为要返回的字符串的长度.

MGET key [key ...]

MSET [key value ...]

返回所有(一个或多个)给定key的值。

同时设置一个或多个key-value对。

O(N)

MSETNX [key value ...]

同时设置一个或多个key-value对,当且仅当所有给定key都不存在。MSETNX是原子性的

PSETEX key milliseconds value

SETEX key seconds value

它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。

将值value关联到 key ,并将key的生存时间设为seconds (以秒为单位)。如果key已经存在,SETEX命令将覆写旧值。

SETNX key value

将key的值设为value ,当且仅当key不存在。若给定的key已经存在,则SETNX不做任何动作。

SETRANGE key offset value

用value参数覆写给定key所储存的字符串值,从偏移量offset开始。不存在的key当作空白字符串处理。

SETRANGE命令会确保字符串足够长以便将 value 设置在指定的偏移量上,如果给定 key 原来储存的字符串长度比偏移量小(比如字符串只有 5 个字符长,但你设置的 offset 是 10 ),那么原字符和偏移量之间的空白将用零字节(zerobytes, "\x00" )来填充。

对小(small)的字符串,平摊复杂度O(1)。则为O(M), M 为 value 参数的长度。

STRLEN key

返回 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。

Redis学习-String的更多相关文章

  1. Redis学习-string数据类型

    Redis 是一个开源的使用 ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志 型.Key-Value 数据库. redis提供五种数据类型string,hash,list,set及sor ...

  2. redis学习--String数据类型。

    本文摘自:http://www.cnblogs.com/stephen-liu74/archive/2012/03/14/2349815.html 一.概述: 字符串类型是Redis中最为基础的数据存 ...

  3. redis学习-string常用命令

    keys * :查询所有的key值 set:为指定键设置对应的值 get:获取指定键的值 mset:一次传入多个键值对 mget:一次获取多个键的值 del:删除指定键 strlen:获取指定键值的长 ...

  4. Redis学习笔记(二)Redis支持的5种数据类型的总结之String和Hash

    引言 在Redis学习笔记(一)中我们已经会安装并且简单使用Redis了,接下来我们一起来学习下Redis支持的5大数据类型. 简介 Redis是REmote DIctionary Server(远程 ...

  5. redis 学习(3)-- String 类型

    redis 学习(3)-- String 类型 String-结构 结构:Key-Value对 Value:可以是字符串.数字,也可以是二进制数组 限制:Value最大值为512MB String-常 ...

  6. Redis学习03——存储字符串(String)

    --------------------- 作者:愤怒的小明 来源:CSDN 原文:https://blog.csdn.net/qiwenmingshiwo/article/details/78118 ...

  7. Redis学习系列二之.Net开发环境搭建及基础数据结构String字符串

    一.简介 Redis有5种基本数据结构,分别是string.list(列表).hash(字典).set(集合).zset(有序集合),这是必须掌握的5种基本数据结构.注意Redis作为一个键值对缓存系 ...

  8. Redis学习笔记(三)-数据类型之string类型

    string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象.从内部实现来看其实string可以看作byte ...

  9. Redis学习手册(目录)

    为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后 ...

随机推荐

  1. Win10 Bash/WSL调试Linux环境下的.NET Core应用程序

    一.简介 使用过Mac OS的程序员都知道,在Mac Book Pro上写程序是一件比较爽的事儿,作为dotneter,我们都比较羡慕Mac系统的环境,比如命令行,当然设备也是挺漂亮的. 在新的Win ...

  2. 【一通百通】C/C++的std标准总结

    C/C++发展很多版本标准,sunsky(本人)早就想理理std标准了,让大家有个清晰的了解. 适用C(或C源代码,如C ++,Objective-C和Objective-C ++)的标准: -ans ...

  3. pl sql 查询显示乱码解决方法——设置环境变量NLS_LANG

    用oracle进行查询的时候,有的时候会出现查询结果为乱码的情况,此时要设置一个环境变量NLS_LANG. 此变量的值如何获得呢?运行下面sql语句就可以获得: select userenv('lan ...

  4. Zabbix3.0部署最佳实践

    Zabbix3整个web界面做了一个全新的设计. 更多新特性请点击当前字幕查看   笔者QQ:572891887 Linux架构交流群:471443208 1.1Zabbix环境准备 [root@li ...

  5. C语言指针基础

    新手在C语言的学习过程中遇到的最头疼的知识点应该就是指针了,指针在C语言中有非常大的用处.下面我就带着问题来写下我对于指针的一些理解. 指针是什么?  指针本身是一个变量,它存储的是数据在内存中的地址 ...

  6. ReactJS入门2:组件状态

    React组件可以简单看做是包含props和states的函数. 上一节总结了创建新组建和数据属性的传递.本节主要讲解组件的状态. React认为UI是不同状态的展现.在React中,开发者只需更新组 ...

  7. MySQL学习笔记(二)—查询

    一.多表连接查询 新建两张表t_user.t_order.              1.内连接      返回满足条件的所有记录. (1)显式内连接      使用inner join关键字,在on ...

  8. 深入Web请求过程

    B/S网络架构 带来的好处: 1.客户端使用同一的浏览器. --浏览器的交互特性使其使用起来非常简便 2.服务器基于统一的http.  --简化.规范开发模式,大大节省开发成本.如tomcat ngi ...

  9. 跟着刚哥梳理java知识点——面向对象(八)

    面向对象的核心概念:类和对象. 类:对一类事物描述,是抽象的.概念上的定义. 对象:实际存在的该类事物的每个个体,因而也成为实例(Instance). Java类及类的成员:属性(成员变量Field) ...

  10. kindeditor扩展粘贴图片功能&修改图片上传路径并通过webapi上传图片到图片服务器

    前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...