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. 20145316 《Java程序设计》第1周学习总结

    20145316 <Java程序设计>第1周学习总结 教材学习内容总结 一.了解java语言: 1.Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言. Java 技术具有卓越的 ...

  2. Python --之练习题

    一,两个小组对战,对战规则如下:team1 = ['a','b','c']team2 = ['x','y','z'] #a 不和x对战,b 不和y,z 对战# for i in team1: #法一# ...

  3. ONVIF学习-ONVIF开发框架搭建(C++)

    第一步.下载gsoap 从gsoap官网(http://www.genivia.com/products.html#notice)下载最新版gsoap(博主用的是gsoap_2.8.45).gsoap ...

  4. jqGrid('setSelection',rowid)报Cannot read property 'multiple' of undefined

    项目组非要上jeeweb框架,用jqgrid+大量iframe做为前端框架,臃肿不堪. 今天上午,在进行选定操作jqGrid('setSelection',rowid)报Cannot read pro ...

  5. SeekArc

    https://github.com/neild001/SeekArc https://github.com/imflyn/SeekArc

  6. 关于Linq的对List<实体>去掉重复ID的一个小例子!

    注意 下面的代码只要ID相同(即使其他的不相同)都会过滤掉,简单来讲就是过滤掉ID相同的实体,如果ID相同,其他属性取第一个的值 List<Abc> list = new List< ...

  7. 如何用纯 CSS 创作一个摇摇晃晃的 loader

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览.https://codepen.io/comehope/pen/oyJvpe 可交互视频 此 ...

  8. 20145230熊佳炜《网络对抗》实验五:MSF基础应用

    20145230熊佳炜<网络对抗>实验五:MSF基础应用 主动攻击 首先,我们需要弄一个xp sp3 English系统的虚拟机,然后本次主动攻击就在我们kali和xp之间来完成. 然后我 ...

  9. oracle update set select from 关联更新

    工作中有个需求,现在新表中有一些数据跟老表的基本一样,这样只需要把老表中数据搬到新表中就可以了,同时把不同的字段修改下数据即可,在修改字段时发现,需要指定一个条件,比如主键id,来修改某条记录,这样一 ...

  10. 爬虫框架Scrapy之案例二

    新浪网分类资讯爬虫 爬取新浪网导航页所有下所有大类.小类.小类里的子链接,以及子链接页面的新闻内容. 效果演示图: items.py import scrapy import sys reload(s ...