Redis主要支持的数据类型有5种:String ,Hash ,List ,Set ,和 Sorted Set。

Redis数据类型String
string类型在redis中是最常见的类型,value存储最大数据量为512M,可以存放json数据,图像数据等等。 下面跟着敲Redis命令操作String类型数据的代码吧。 redis数据写命令Set,相当于数据插入 redis 127.0.0.1:6379> set name zlh --返回值: ok,说明插入成功。如果当前name存在值则覆盖替换原有的value值。 redis数据读命令Get,获取数据 redis 127.0.0.1:6379> get name --返回值: "zlh" ,如果当前key没有value值,则返回null redis数据追加命令Append,追加数据 redis 127.0.0.1:6379> append name ' is my friend' --返回值:"zlh is my friend" ,如果当前key的value有值则附加到原有string后面,如果没有则写入。 redis数据删除 redis 127.0.0.1:6379>del name redis数据读写操作命令GetSet,获取原有value值的同时写入新的value值 1、redis 127.0.0.1:6379>getset name zlh --返回值:"zlh is my friend",这里返回的是原有name的value值,同时又给name的value设置新值zlh。
此时name的值真实值为zlh 2、redis 127.0.0.1:6379>get name --返回值:zlh ,因为上面getset给name的value设置值为zlh。 redis数据加法计算命令incr,incrby,数据加法运算,incr为+1内置运算,incrby为+n自设n运算 1、redis 127.0.0.1:6379>incr name ---返回值:“数据不是整型或数据超出64位有符号整形数据范围” ,由于原有name的value为"zlh",所以不能转换为整型,故报异常。 2、redis 127.0.0.1:6379>incr age ----返回值:1,由于不存在age的key与value值,但是默认age为key值为0进行+1运算。 3、redis 127.0.0.1:6379>incr age ---返回值:2,由于上一行代码给age赋值为1,这里incr命令进行+1运算,故返回值为2。 4、redis 127.0.0.1:6379>incrby age 10 ---返回值:12 ,因为原有age是2,这里+10故为12。 redis数据减法计算命令decr,decrby, 数据减法运算,decr为-1内置运算,decrby为减n自设n运算 1、redis 127.0.0.1:6379>decr name --返回值:“数据不是整型或数据超出64位有符号整形数据范围” ,由于原有name的value为"zlh",所以不能转换为整型,故报异常。 2、redis 127.0.0.1:6379>decr age --返回自:11,因为原有age的value值为12,这里decr是自减1的意思,故为11。 3、redis 127.0.0.1:6379>decrby age 10 --返回值:1,因为原有age为11,这里-10,故为1。 redis获取string长度的命令strlen redis 127.0.0.1:6379>strlen name --返回值:3,因为name的value值为zlh,故长度为3,如果该key或者value不存在,则返回0。 redis设置value值并设置过期时间命令setex(单位秒) redis 127.0.0.1:6379>setex sex 20 male ---返回值:ok,设置key为sex的value值为male,缓存的过期时间为20s。 redis 127.0.0.1:6379>ddl sex ---返回值: 剩余过期时间,0为已过期,-1为永不过期。 redis 127.0.0.1:6379>get sex ---返回值:male,说明此时为没有过期,当已经过期此处返回数据为null。 redis赋值判断原值是否存在,存在不赋值,返回0;不存在才赋值,返回1;命令setnx redis 127.0.0.1:6379>setnx name Tom ---返回值:0,因为name的原有value为zlh,存在值则不赋值。 redis 127.0.0.1:6379>gete name ---返回值:zlh,因为有值,故上面赋值为tom失败,返回0。 redis 127.0.0.1:6379>setnx phone 18501733702 ---返回值:1,赋值成功,因为原来不存在phone的key与value。 redis 127.0.0.1:6379>get phone ---返回值:18501733702,说明上面的setnx赋值成功。 redis字符串替换赋值,从指定位置开始替换,命令setrange redis 127.0.0.1:6379>setrange phone 9 123 --返回值:12,12为字符串长度,11位号码变成了12位。因为从第9位开始替换,替换到原有字符串的最后一位还没有替换完毕,所以在最后面添加啦一位设置为3。 redis 127.0.0.1:6379>get phone ---返回值为:185017337123. redis 127.0.0.1:6379>set phone 1 ---这里为了下面说下setrange的其他特性,把电话设置为1. redis 127.0.0.1:6379>setrange phone 3 aaa ---返回值为:6,因为原有phone的value值为1,不到三位,用0*00替换2位,所以要添加2为才能替换第三位后面的值为aaa。 redis 127.0.0.1:6379>get phone ---返回值:1\*00\*00aaa。理解下上面的操作就知道这里为什么是这样的返回值了。 redis截取字符串,从下标为n开始截取到n或n+1,类似c#中的substring,命令getrange redis 127.0.0.1:6379>set phone 18501733701 ----方便下面操作 redis 127.0.0.1:6379>getrange phone 1 5 ---返回值:85017,因为getrange是从下标为1开始截取截取到下标为5,这里包含下标为5的值。 redis 127.0.0.1:6379>getrange phone 0 0 ---返回值:1,从下标为0开始截取,截取到下标为0,包含下标为0。故返回值为1。 redis 127.0.0.1:6379>getrange phone 10 13 --返回值为:1,此号码下标直到10的11位号码,从10开始截取,截到第13位,后2位不存在忽略,只返回第10位。
故返回干净的1。 redis批量操作修改及读取string数据,命令mget,批量读取,命令mset,批量赋值,命令msetnx,带事务性的赋值,发现有一个key已经存在,所有事务回归,不做赋值处理操作 redis 127.0.0.1:6379>mset name zlh age 30 ---返回值:ok,这里设置了 key为name和age的value分别为zlh,30 redis 127.0.0.1:6379>mget name zlh ---返回值:1>zlh 2>30 。 redis 127.0.0.1:6379>msetnx name Jim address China ---返回值为:0,没有做任何修改,因为key为那么已存在。 redis 127.0.0.1:6379>mget name address ---返回值:1>zlh 2>null redis 127.0.0.1:6379>msetnx address China,hobbies sports --返回值为:1,插入成功 redis 127.0.0.1:6379>mget address hobbies ---返回值:1>China 2>sports

Redis的数据类型之String的更多相关文章

  1. redis 五大数据类型之string篇

    一: 1:string(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value. string类型是二进制安全的.意思是redis ...

  2. Redis基本数据类型以及String(一)

    前言:     Redis也有自己的数据类型,包含string,list,hash,set,sorted set.下面就对每种数据类型原理以及操作做一个详细的介绍.     Redis是面向编程的语言 ...

  3. 专题二:redis的数据类型之string

    一.redis的数据存储格式 redis本身是一个Map,其中所有的数据都是采用 "key:value"的方式进行存储的. 我们说的数据类型是数据存储的类型,也就是对应下图的val ...

  4. redis 基本数据类型-字符串(String)

    不瘦原来对redis也是有个大概的了解(就你知道的多), 但是最近和大神聊天的过程中才明白自己知道的简直就是鸡毛蒜皮(让你得瑟),所以不瘦打算从头在捋一遍,顺便把过程也记录下来,如果能给大家在学习re ...

  5. Redis的数据类型及其常用命令

    快速入门Redis 首先安装redis: windows下安装redis Linux下安装redis 1. 什么是redis Redis属于nosql(非关系型数据库) 关系型数据库是基于关系表的数据 ...

  6. redis基本数据类型和对应的底层数据结构

    Redis的数据类型包含string,list,hash,set,sorted set. Redis中定义了一个对象的结构体: /* * Redis 对象 */ typedef struct redi ...

  7. Redis常用数据类型及各种数据类型应用和实现方式

    Redis常用数据类型: StringHashListSetSorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存管理中是如何描述这些不同数据类型的: 首先Red ...

  8. Redis学习(4)-数据类型,string,hash

    Redis数据类型: redis使用键值对保存数据 key:全部是字符串 value:五种数据类型:string,hash,List,Set,有序的Set集合. key命名:自定义,名字不要过长,否则 ...

  9. 《闲扯Redis一》五种数据类型之String型

    一.前言 Redis 提供了5种数据类型:String(字符串).Hash(哈希).List(列表).Set(集合).Zset(有序集合),理解每种数据类型的特点对于redis的开发和运维非常重要. ...

随机推荐

  1. CodeForces Round #515 Div.3 D. Boxes Packing

    http://codeforces.com/contest/1066/problem/D Maksim has nn objects and mm boxes, each box has size e ...

  2. 启动Tomcat时的常见问题及解决办法

    问题一:环境变量 1.检查jdk 验证jdk的配置,在运行-cmd中输入 java -version 即表示安装成功. 如果jdk没有问题,还需要配置两个环境变量.找到jdk和jre的路径,配置JAV ...

  3. Scala 基础(8)—— 占位符_和部分应用函数

    1. 占位符 _ 针对 Scala 基础(7)—— 函数字面量和一等函数 中最后提到的,关于 filter 函数字面量的精简写法,可以使用占位符 _ 来代替. 占位符_,用来表示一个或者多个参数.(这 ...

  4. redis常用监控命令

    redis常用监控命令 1.实时监控redis服务收到来自应用的所有命令 1 2 3 4 5 6 7 redis-cli   127.0.0.1:6379>monitor   150996415 ...

  5. [CF1036C]Classy Numbers

    题目大意:多个询问,每个询问问$[l,r](1\leqslant l\leqslant r\leqslant10^{18})$内有多少个数满足非零数位小于等于$3$. 题解:数位$DP$,$f_{i, ...

  6. OAuth2.0 用户验证授权标准 理解

    OAuth2.0是一套标准. 一.问题 这个标准解决了这样的一个问题. 允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用.  ...

  7. BZOJ2743 [HEOI2012]采花 【离线 + 树状数组】

    题目 萧芸斓是Z国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一排的,以便于公主采 ...

  8. Android应用开发EditText文本内容变化监听方法

    import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android. ...

  9. symfony 关于nginx的配置问题

    好久没有使用symfony,今天想重新宠幸的时候,却碰到了一个很尴尬的问题,下载安装好symfony的时候访问首页成功安装,然而写了一个其它的路由却怎么都是404. 官网看了n遍的路由配置,什么开始第 ...

  10. CString和string在unicode与非unicode下的相互转换(转)

    原文转自 http://blog.csdn.net/u014303844/article/details/51397556 CString和string在unicode与非unicode下的相互转换 ...