码迷,mamicode.com
首页 > 其他好文 > 详细

小蚂蚁学习Redis笔记(3)——Redis数据类型之string类型

时间:2015-11-12 18:25:28      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:

昨天安装完毕,今天终于可以进入正题了。

Redis中string类型的常用命令:

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

1.    set    设置一对键值

    格式:set    键    值        例如:set     name    "allen"

    含义:添加一个键值对。

    值得注意的是,这个命令在设置重复的key时,value是会覆盖的。它的作用是如果键不存在就添加这个键,如果存在就覆盖,会返回OK。

2.    setnx    设置一对键值(键如果重复,不会覆盖)

    格式:setnx    键    值        例如:setnx    name1    “john”

    含义:此命令在设置键的时候,会判断这个键是否存在,如果不存在,就创建这个键值,返回1,如果存在,不会更新原值,返回0。区别于set。

3.    setex    设置一对键值,并指定有效时间

    格式:setex    键    时间    值    例如:setex    name2    10    “frank”

    含义:设置一个key对应的值为string类型的value,并且指定此键值对应的有效期。

    注意:在有效期内,能够返回值,超出有效期,只能返回空(nil)。如果key相同,该命令会覆盖上一个key的值。

    另外:不设置有效期,代表永久生效。

4.    setrange    设置指定key的value值的子字符串

    这个需要上例子了:

    127.0.0.1:6379> set email "allen@xiaonayi.com"

    OK

    127.0.0.1:6379> setrange email 6 "php"

    (integer) 18

    127.0.0.1:6379> get email

    "allen@phponayi.com"

     从例子中可以看到,从下标为6的字符开始,被“php”这三个字符给替换掉了,但是后面没有替换的部分还在。替换成功会返回替换成功之后的总长度。

5.    mset    批量设置键值对

    格式:mset    key1 value1 key2 value2 key3 value3……

    含义:一次性设置多个key的值,成功返回OK,表示所有的值都设置了;失败返回0,表示没有任何值被设置。 

    注意:m代表批量的意思,后面还有很多批量的操作。

6.    msetnx    批量设置键值对,但是不会覆盖相同key的值。

    格式:msetnx    key1 value1 key2 value2 key3 value3……

    含义:一次设置多个key的值,成功返回1,表示所有值都已经被设置;失败返回0,表示没有任何值被设置。但!是!它不会覆盖已经存在的key。区别于:mset

7.    get    返回一个键的值

    格式:get    name    将会返回来那么的值。如果键不存在,返回空(nil)

8.    getset    设置key的值,并且返回key的旧值

    直接上例子:

    127.0.0.1:6379> get name1

    "aaa"

    127.0.0.1:6379> getset name1 bbb

    "aaa"

    127.0.0.1:6379> get name1

    "bbb"

    例子很明了了,name1的原来值是aaa,然后用getset赋值了一个bbb,返回的是原来值aaa。事实上已经赋予了新值。

9.    getrange    获取key的value值的子字符串

    格式:getrange    email    0    5

    含义:把键名为email的值,从第0个字符到第5个字符返回。例如:

    127.0.0.1:6379> getrange email 0 5

    "allen@"

10.    mget    批量获取值

    格式:mget    key1    key2    key3    key4    ……

    含义:批量获取值,存在返回值,不存在返回空(nil)

11.    incr    对key的值做递增操作

    格式:incr    num    

    含义:对键名为num的值,每次递增1。

    注意:如果num的值不是int类型,会报错:(error) ERR value is not an integer or out of range

12.    incrby    同上,加上指定值

    格式:incrby    key    数字

    含义:对key的值按照指定的数字递增。

    注意:正数,递增;负数,递减。

13.    decr    递减操作

    格式:decr    key

    含义:对key的值每次递减1。

14.    decrby    按照指定值递减

    格式:decrby    key    数字

    含义:按照指定的值,每次递减

    注意:正数,递减;负数,递增。

PS:incrby 和 decrby    正好相反。

15.    append    追加value

    格式:append    key    值

    含义:为key的值的末尾,在加上指定的值。返回的是新字符串的长度。

16.    strlen    获取字符串的长度

    格式:strlen    key

    含义:返回key值的长度。如果key存在,就返回长度。key不存在,返回0。这个函数和php的一样。


    爱玛,打字累的指头疼,昨天双11,犒劳自己买了个机械键盘,希望快快来    o(*≧▽≦)ツ┏━┓

    学PHP的小蚂蚁 原创博客 http://my.oschina.net/woshixiaomayi/blog


     

小蚂蚁学习Redis笔记(3)——Redis数据类型之string类型

标签:

原文地址:http://my.oschina.net/woshixiaomayi/blog/529554

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!