zoukankan      html  css  js  c++  java
  • 【Redis】基本数据类型常用操作

    一、append 追加字符串

    append name 2222
    

    二、strlen 获取key 字符串长度

    strlen name
    

    三、自增、自减

    文章浏览量,点赞可以用这种实现。

    incr age
    decr age
    

    注意这里得是数字才可以进行,所以重设置了一个key。String类型除了可以存字符串也可以是数字。

    如果要带步长:

    incrby age 5
    decrby age 8
    

    四、字符串range

    getrange name 1 3
    

    getrange name 0 -1 查看全部,跟python里的字符串截取操作类似。

    五、替换字符串

    指定位置开始替换字符串

    setrange name 0 test
    

    六、设置值及其过期时间

    setex

    setex mykey 60 redis
    

    为指定的 key 设置值及其过期时间。如果 key 已经存在,SETEX命令将会替换旧的值。

    setnx
    Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。这个在分布式锁中经常用到。

    setnx mykey redis333
    

    key存在,则设置失败。

    七、批量操作

    1. mset、mget

    mset,一次性设置多个。

    mset k1 v1 k2 v2 k3 v3
    

    mget,一次性获取多个。

    mget k1 k2 k3
    

    2. msetnx

    注意,这里设置多个值的时候,只要有一个失败,则都不成功。

    msetnx k1 v1 k4 v4
    

    八、设置一个json对象

    在实际应用中,可能会经常要存一个对象,那么在redis里可以借助冒号:来进行一些巧妙的设计。

    比如 现在要吧{name: pingguo, age:22}设置给一个user1,就可以这样:

    mset user:1:name pingguo user:1:age 22
    
    mget user:1:name user:1:age
    

    九、getset 先获取再设置

    就像字面意思那样,会先get值,然后进行set。
    如果不存在值,则返回nil。如果存在,就获取原来的值,然后set新的值。

    getset db mongodb
    

    --不要用肉体的勤奋,去掩盖思考的懒惰--
  • 相关阅读:
    Can't locate ... in @INC
    c++写一个类后编译发现class重定义
    python with
    遍历Java Map
    mod_jk notes
    NPM使用总结
    Yeoman
    Java中的Marker Interfaces有什么用
    有关Ehcache的内容的引用和Java的deep copy
    JDBC的PreparedStatement语句使用记录
  • 原文地址:https://www.cnblogs.com/pingguo-softwaretesting/p/14884022.html
Copyright © 2011-2022 走看看