设为首页 收藏本站
查看: 1205|回复: 0

[经验分享] redis hash和string类型命令操作详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-7-9 09:14:24 | 显示全部楼层 |阅读模式
<?php
    /*乐杨俊
     *redis客户端中的使用:
      
     redis:没有设置有效期时默认永久有效
     
     
     ==========string类型的方法==========
     介绍:string是redis的最简单类型,一个key对应一个value,string类型是二进制安全的。
           redis的string可以包含任何数据,比如jpg图片或者序列化的对象
           
           
    1:一个key只包含一个value值,当设置相同值时=会覆盖
      
      设置值:set name leyangjun     
      获取值:get name
      
    2:setnx:(会判断设置的值是否存在,不存在则设置)
            设置key对应的值为string类型的value,如果key已经存在则返回0,nx是not exist的意思
     
    3:setex:
            设置key对应的值为string类型的value,并指定此键值对应的有效期
            例子:setex name 10 leyangjun   -->设置name的值为leyangjun 且保存10秒   
                  get name                  -->10秒之类可以获取该值
    4:setrange:(替换值,2个就替换2个,如长度下与之前的位数,不会删除掉的哦)
            设置指定KEY的value值的字符串
            例子:setrange name 6 gmail.com       -->(6表示从第几个字符开始替换,替换的值写2个只会依序替换2个其余的不替换)将name的值替换成gmail.com
   
    5:mset: 批量设置
            一次性设置多个KEY值,成功返回OK表示所有的值都设置了,失败返回0表示没有任何值被设置
            例子:mset key1 leyangjun1 key2 leyangjun2
    6: msetnx:
            一次性设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置,但不会覆盖已经存在的key
            例子:msetnx key1 leyangjun3 key2 leyangjun2   -->如果其中任何一个key存在的话设置都不会成功
    7:get:
            获取key对应的string值,如果key不存在返回nil

    8: getset:
            设置key的值,返回key的旧值   
            例子:getset key6 30   -->获取旧值并将其设置新值
    9:getrange
            获取key的value值得字符串
            例子:getrange email 0 4   -->获取Email的值从0-4(leyan) leyangjun@qq.com,
    10:mget:批量获取
            一次性获取多个key的值,如果对应key不存在则对应返回nil
            例子:mget key1 key2 key3...
    11:incr   自增加1
            对key的值做加操作,并返回新的值-->key不存在的时候会设置key,并认为原来的value是0
            例子:incr key6     -->递增  每次都加1
    12:incrby
            同incr类似,加指定值,key不存在的时候会设置key,并认为原来的value是0
            例子:incrby key7 5     -->自增5  加
                  incrby key7 -5    -->负自增   减
    13:decr   自减意思
            对key的值做减法操作
            例子:decr key6     -->key6-1   减去1
    14:decrby
            同decr类似,指定减值
            例子:decrby key6 3   -->key6-3
                  decrby key6 -3  -->负的就是加3
    15:append
            给指定key的字符串追加value,返回新的字符串值得长度
            例子:append name .net   -->name=leyangjun   append后 leyangjun.net
    16:strlen
            取值定key的value值得长度
            例子:strlen name
            

=================END======================
            
            
===============hash类型===================
    介绍:redis -> hash是一个string类型的field和value的映射表
             hash特别适合对应存储对象,相较于将对象的每个字段存成单个string类型
             将一个对象存储在hash类型中会占用更少的内存,并且可以方便的存取整个对象
            
            
    0:hset *如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作
            设置hash field为指定值,如果key不存在,则先创建
            例子:hset user:001 name leyangjun     会创建表

    0.2:hsetnx
            设置hash field 为指定值,如果不存在,则创建,如果存在则返回0
            例子:hsetnx user:002 name leyangjun
    1:hmset:设置多个哈希表的字段值
            同时设置hash的多个field
            例子:hmset user003 name leyangjun age 23 sex 1   -->对哈希表003设置值成功
            hget获取: hget user:003 name    -->获取哈希表003 name的值
    2:hget
            获取指定的hash field值
            例子:hget user003 name      -->表明  字段
    3: hmget
            获取全部指定的hash field
            例子:hmget user:003 name age sex
    4:hincrby (对某个值就行自)
            指定的hash field加上给定值
            例子:hincrby user:003 age 5  -->给原来age的值 加 5  20+5
    5: hexists
            测试指定的field是否存在
            例子: hexists user:003 sex   -->判断hash表字段是否存在
    6:hlen
            返回指定hash表中所有的field数
            例子:hlen user003
    7:hdel
            删除指定hash表中field的值
            例子:hdel user003 age     -->删除user003 表中age的字段
    8:hkeys
            返回hash表中所有的字段
            例子:hkeys user003
    9:hvals
            返回hash表的所有value
            例子:hvals user003   -->所有表中key对应的值
    10:* hgetall  常用
            获取某个hash中全部的field及value
            例子:hgetall user003
    ============END==============
     */
?>



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-21833-1-1.html 上篇帖子: Redis的介绍与安装部署 下篇帖子: redis hset命令详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表