Redis的数据类型

String类型以及操作

String是最简单的数据类型,一个key对应一个Value,String类型是二进制安全的。Redis的String可以包含任何数据,比如jpg图片或者序列化对象

Set
设置key对应的值为string类型的value
例如:我们添加一个name为lijie的键值对

127.0.0.1:> set name lijie
OK
127.0.0.1:> get name
"lijie"
127.0.0.1:> set name lambrother
OK
127.0.0.1:> get name
"lambrother"

我们再次设置name为lambrother,后面发现将前面的lijie覆盖了。

Setnx
设置key对应的值为string类型的value,如果key已经存在,返回0,nx是not exist的意思
例如我们添加一个name = lijie_new的键值对

127.0.0.1:> setnx name lijie_new
(integer)
127.0.0.1:> get name
"lambrother"
127.0.0.1:> setnx age
(integer)
127.0.0.1:> get age
""

Setex
设置key对应的值为string类型的value,并指定键值对的有效期
例如:我们添加一个haircolor = red的键值对,并制定有效期为10秒

127.0.0.1:> setex haircolor  red
OK
127.0.0.1:> get haircolor
"red"
10秒后
127.0.0.1:> get haircolor
(nil) nil指的是空的意思。
127.0.0.1:> setnx haircolor red
(integer) //验证了前面的键值对失效了。

Setrange
设置指定key的value值的子字符串
例如:我们希望将lijie的126邮箱替换成为gmail邮箱

127.0.0.1:> set email lijie@lambrother.net
OK
127.0.0.1:> get email
"lijie@lambrother.net"
127.0.0.1:> setrange email li-jie.me //6代表的是原来字符串的开始替换位置的下标
(integer) //20 代表的是新字符串的长度
127.0.0.1:> get email
"lijie@li-jie.mer.net" //观察发现替换后的字符串如果长度没有原来字符串长,会将原来字符串的剩余依旧拼接

mset
一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置

127.0.0.1:> mset key1 lijie1 key2 lijie2
OK
127.0.0.1:> get key1
"lijie1"
127.0.0.1:> get key2
"lijie2"

msetnx
一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置,但是不会覆盖已经存在的key

127.0.0.1:> msetnx key3 lambrother key4 lijie@lambrother.net key2 lijie
(integer)
127.0.0.1:> get key3
(nil)
127.0.0.1:> get key4
(nil)
127.0.0.1:> msetnx key3 lambrother key4 lijie@lambrother.net key5 lijie
(integer)
127.0.0.1:> get key3
"lambrother"
127.0.0.1:> get key4
"lijie@lambrother.net"
127.0.0.1:> get key5
"lijie"
127.0.0.1:>

getset
设置key的值并返回旧的key值

127.0.0.1:> get key5
"lijie"
127.0.0.1:> getset key5 haha
"lijie"
127.0.0.1:> get key5
"haha"
127.0.0.1:>

getrange
获取子字符串

127.0.0.1:> get email
"lijie@li-jie.mer.net"
127.0.0.1:> getrange email //获取email的value的0索引到5(包括5)索引的值
"lijie@"
127.0.0.1:>

mget
批量获取

127.0.0.1:> mget key1 key2 key3 key4 key5 key
) "lijie1"
) "lijie2"
) "lambrother"
) "lijie@lambrother.net"
) "haha"
) (nil)
) (nil)
127.0.0.1:>

incr
对key的值做加加操作,并返回新的值

127.0.0.1:> set key6
OK
127.0.0.1:> get key6
""
127.0.0.1:> incr key6
(integer)
127.0.0.1:> incr key6
(integer)
127.0.0.1:> get key6
""
127.0.0.1:>

incrby
同incr类似,区别在于必须指定增量

127.0.0.1:> get key6
""
127.0.0.1:> incrby key6
(integer)
127.0.0.1:> incrby key6 -
(integer)
127.0.0.1:>

decr
对key的值做减减操作

127.0.0.1:> decr key6
(integer)
127.0.0.1:> decr key6
(integer)

decrby
与decr类似,指定减量

127.0.0.1:> decrby key6
(integer)
127.0.0.1:> decrby key6 -
(integer)

append
给指定key的字符串追加value,返回新字符串的长度

127.0.0.1:> get name
"lambrother"
127.0.0.1:> append name .net
(integer)
127.0.0.1:> get name
"lambrother.net"

strlen
取指定key的value的长度

127.0.0.1:> strlen name
(integer)

redis的String类型以及其操作的更多相关文章

  1. redis对string进行的相关操作

    redis对string类型操作的相关命令以及如何在python使用这些命令 redis对string类型操作的命令: 命令 语法 概述 返回值 Redis SET 命令  set key value ...

  2. 使用Redis数据库(String类型)

    一 String类型 首先使用启动服务器进程 : redis-server.exe 1. Set 设置Key对应的值为String 类型的value. 例子:向 Redis数据库中插入一条数据类型为S ...

  3. Redis 中 String 类型的内存开销比较大

    使用 String 类型内存开销大 1.简单动态字符串 2.RedisObject 3.全局哈希表 使用 Hash 来存储 总结 参考 使用 String 类型内存开销大 如果我们有大量的数据需要来保 ...

  4. 一:redis 的string类型 - 相关操作

    *redisclient使用: =============一类:string的方法================ 介绍:string是redis的最简单类型,一个key相应一个value,strin ...

  5. [redis] redis 对string类型数据操作

    package com.xwolf.java.redis; import org.junit.Before; import org.junit.Test; import redis.clients.j ...

  6. 深入浅出Redis02 使用Redis数据库(String类型)

    一 String类型 首先使用启动服务器进程 : redis-server.exe 1. Set 设置Key对应的值为String 类型的value. 例子:向 Redis数据库中插入一条数据类型为S ...

  7. redis的list类型以及其操作

    lists类型 给你个图;' lists类型以及操作List是一个链表结构,主要功能是push.pop.获取一个范围的所有值等等,操作中key理解为链表的名字.Redis的list类型其实就是每一个子 ...

  8. redis的Hash类型以及其操作

    hashes类型 hashes类型及操作Redis hash是一个string类型的field和value的映射表.它的添加.删除操作都是0(1)(平均).hash特别适合用于存储对象.相较于将对象的 ...

  9. Redis中String类型的Value最大可以容纳数据长度

    项目中使用redis存储,key-value方式,在Redis中字符串类型的Value最多可以容纳的数据长度是512M 官方信息: A String value can be at max 512 M ...

随机推荐

  1. opencv图像处理之在手机上实现背景虚化

    http://m.blog.csdn.net/blogercn/article/details/75004162 1.高端数码相机都具有背景虚化功能.背景虚化就是使景深变浅,使焦点聚集在主题上.一般的 ...

  2. CSS Dimension(尺寸)

    CSS Dimension(尺寸) 一.简介 CSS 尺寸 (Dimension) 属性允许你控制元素的高度和宽度.同样,它允许你增加行间距. 二.Dimension(尺寸)属性值 三.示例 (1)示 ...

  3. CSS Text(文本)

    CSS Text(文本) 一.文本颜色 color 颜色属性被用来设置文字的颜色. 颜色是通过CSS最经常的指定: 十六进制值 - 如: #FF0000 一个RGB值 - 如: RGB(255,0,0 ...

  4. 20145307《信息安全系统设计基础》第五周学习总结PT2

    20145307<信息安全系统设计基础>第五周学习总结PT2: 教材学习内容总结 之前有第一部分学习总结: http://www.cnblogs.com/Jclemo/p/5962219. ...

  5. Jquery4 过滤选择器

    学习要点: 1.基本过滤器 2.内容过滤器 3.可见性过滤器 4.子元素过滤器 5.其他方法 过滤选择器简称:过滤器.它其实也是一种选择器,而这种选择器类似 CSS3里的伪类,可以让不支持 CSS3 ...

  6. 分布式缓存DistributedCache

    本文是对MR案例:Map-Join的解读. 在hadoop中,共享全局变量或全局文件的几种方法 使用Configuration的set()方法,只适合数据内容比较小的场景 将缓存文件放在HDFS上,每 ...

  7. windows使用Pandoc将Markdown转换为PDF文件

    pandoc下载:https://github.com/jgm/pandoc/releases/tag/1.19.2.1 //windows下载msi文件 miktex下载:https://mikte ...

  8. 如何打开windows的远程桌面

    WINDOWS 2003/XP 系列设置方法 右键点击[我的电脑]选择[属性],进入[系统属性]界面,点击[远程]选项卡,勾选[启用这台计算机上的远程桌面]即可. 2003/XP系统默认只允许计算机a ...

  9. OpenDayLight "Error executing command: java.lang.NullPointerException"问题解决

    参考: Fedora 21 mostly working but NullPointerException at Karaf shell 在使用ODL的时候,安装功能组件时出现: Error exec ...

  10. 机器学习笔记—K-均值聚类

    在聚类问题中,给定训练集 {x(1),...,x(m)},要把数据分成内聚的“簇”.这里 x(i)∈R,没有 y(i).所以,这是一个无监督学习问题. k-均值聚类算法如下: 1.随机初始化簇中心 μ ...