文档章节

Redis学习笔记之Redis字符串String(五)

残风vs逝梦
 残风vs逝梦
发布于 2016/10/05 23:32
字数 981
阅读 43
收藏 3

Redis学习笔记之Redis字符串String(五)

特点【转】

     字符串类型最大的特点就是单key单value。

    string是redis最基本的类型,而且string类型是二进制安全的。

      redis的string可以包含任何数据。比如jpg图片或者序列化的对象。从内部实现来看其实string可以看作byte数组,最大上限是1G字节 

下面是string类型的定义:

struct sdshdr { 
long len; 
long free; 
char buf[]; 
}; 
buf是个char数组用于存贮实际的字符串内容。其实char和c#中的byte是等价的,都是一个字节 
len是buf数组的长度,free是数组中剩余可用字节数。 
由此可以理解为什么string类型是二进制安全的了。因为它本质上就是个byte数组。当然可以包含任何数据了。 
另外string类型可以被部分命令按int处理.比如incr等命令, 
redis的其他类型像list,set,sorted set ,hash它们包含的元素与都只能是string类型。 
如果只用string类型,redis就可以被看作加上持久化特性的memcached.当然redis对string类型的操作比memcached多很多啊。

常用api

set key:

【格式】set key value
【作用】设置key和value,如果存在可以覆盖
例如: 
  $: set k1 v1

get key

【格式】get key
【作用】获取某个key的value
例如: 
  $: set k1 v1
  $: get k1 #返回v1

del key

【格式】del key
【作用】删除某个key
例如: 
  $: set k1 v1
  $: del k1

append key value

【格式】append key value
【作用】对value追加内容
例如:
  $:set k2 v2
  $:append k2 v2
  $:get k2    #返回的value=v2v2

strlen key

【格式】strlen key
【作用】获取key对应value的长度
例如:
  $: set k2 v2 v2
  $: strlen k2 # 4 

incr key 

【格式】incr key 
【作用】对数字类型的value+1操作,如果不是数字类型的报错
例如:
  $: set num 1
  $: incr num
  $: get num # 返回2

decr key

【格式】decr key
【作用】对数字类型的value-1操作,如果不是数字类型的报错
例如:
  $: set num 10
  $: decr num
  $: get num # 返回9

incrby key n

【格式】incrby key n
【作用】对数字类型的value+n操作,如果不是数字类型的报错
例如:
  $: set num 1
  $: incr num 11
  $: get num # 返回12

decrby key m

【格式】decrby key m
【作用】对数字类型的value-m操作,如果不是数字类型的报错
例如:
  $: set num 100
  $: decr num 45
  $: get num # 返回55

getrange key begin end

【格式】getrange key begin end
【作用】截取范围内的字符串[begin,end]
例如:
   $:set k2 v2v2
   $:getrange k2 1 2  #则返回2v

setrange key index newvalue

【格式】setrange key index newvalue
【作用】从index处用newvalue覆盖旧的value
例如:
  $:set k2 v2v2
  $:set k2 1 xx
  $:get k2  #返回vxx2

setex key time value

【格式】setex key time value
【作用】设置key并且设置过期时间,单位为秒
例如:
   $: setex k3 100 v3 
   $: ttl k3   # 使用ttl key来查看剩余过期时间

setnx key value

【格式】setnx key value
【作用】如果key不存在,设置成功,否则设置失败
例如:
  $:del k3
  $:setnx k3 v3_new   #设置成功
  $:setnx k3 vvv3     #设置失败

mget key1 key2 key3 ...

【格式】mget key1 key2 key3
【作用】如果key不存在,设置成功,否则设置失败
例如:
  $: set k1 v1
  $: set k2 v2
  $: set k3 v3
  $: mget k1 k2 k3 k4  #key不存在直接返回(nil)

mset key1 value1 key2 value2 ...

【格式】mset key1 value1 key2 value2 ...
【作用】同set key存在则覆盖
例如:
   $: mset k1 v11 k2 v22 k3 v33  #可以对上面mget的例子进行优化
   $: mget k1 k2 k3 k4 #查看了k1,k2,k3,k4的值

msetnx key1 value1 key2 value2 key3 value3 ...

【格式】msetnx key1 value1 key2 value2 key3 value3 ...
【作用】同setnx,只有key都不存在才成功
例如:
  $: del k1
  $: del k2
  $: del k3
  $: del k4
  $: msetnx k1 kk1 k2 kk2 k3 kk3 # 成功
  $: msetnx k3 vv3 k4 vv4 #失败,k3已经存在了,
  $: get k4 # 返回 (nil)

全部API

网址: http://redisdoc.com/

© 著作权归作者所有

共有 人打赏支持
残风vs逝梦
粉丝 55
博文 118
码字总数 71921
作品 0
武汉
高级程序员
私信 提问
redis命令及对应jedis操作(一)-String类型

我们知道学习编程知识,先要搭建环境,首先需要下载redis工具包,下载时需要注意,redis的偶数版是表示稳定版(2.4,2.6等),奇数版表示非稳定版(2.5,2.7等),我下载的是2.6的,最新版本...

laoyao
2014/07/26
0
3
Redis学习笔记~Redis提供的五种数据结构

分布式缓存,消息队列,替代Session呵呵(Session太不稳定了,呵呵)=Redis Redis的崛起绝非偶然,它确实有自己的新东西在里面,它不像Memcached,只能将数据存储在内存中,它提供了持久化机...

mcy247
2017/12/07
0
0
Redis学习笔记之Redis数据类型(四)

Redis的五大数据类型 1.1 String(字符串) String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。 string类型是二进制安全的。意思...

残风vs逝梦
2016/08/07
44
0
Redis学习笔记之基本数据结构

Redis基础数据结构 Redis有5种基本数据结构:String(字符串)、list(列表)、set(集合)、hash(哈希)、zset(有序集合) 字符串string 字符串类型是Redis的value最简单的数据结构,类似与Java语言...

smileNicky
2018/09/26
0
0
Redis 笔记系列(五)——redis五大数据类型概述

Redis 数据类型: Redis的数据类型,其实最好的介绍文档是redis的官方文档:http://redis.io/topics/data-types-intro 数据类型有很多种,最常用的为以下5个: 字符串String、列表List、集合...

HappyBKs
2016/10/30
136
0

没有更多内容

加载失败,请刷新页面

加载更多

记录replugin使用的一个坑

反复编译插件放入宿主中,一直出现如下错误: android.content.res.Resources$NotFoundException: Resource ID #0x7f050000 type #0x5 is not valid 回滚代码,重启AS还是出错。最终发现将宿...

Gemini-Lin
今天
2
0
Vert.x系列(二)--EventBusImpl源码分析

前言:Vert.x 实现了2种完成不同的eventBus: EventBusImpl(A local event bus implementation)和 它的子类 ClusteredEventBus(An event bus implementation that clusters with other Ve......

冷基
今天
2
0
Perl - 获取文件项目

参考:http://www.runoob.com/perl/perl-directories.html 下面返回JSON格式的文件列表 #!/usr/bin/perluse strict;use warnings;use utf8;use feature ':5.26';require Fi......

wffger
昨天
3
0
vue组件系列3、查询下载

直接源码,虽然样式样式不好看,逻辑也不是最优,但是可以留作纪念。毕竟以后类似的功能只需要优化就可以了,不用每次都重头开始。。。 <template> <div class="pre_upload"> <div ...

轻轻的往前走
昨天
3
0
java浅复制和深复制

之前写了数组的复制,所以这里继续总结一下浅复制和深复制。 浅拷贝:对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝。 深拷贝:对基本数据类型进行值传递,对引用数据类型,...

woshixin
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部