• Python-Redis的String操作


     Ubuntu安装Redis

    sch01ar@ubuntu:~$ sudo apt install redis-server
    sch01ar@ubuntu:~$ redis-server
    sch01ar@ubuntu:~$ redis-cli
    

    get(key):获取key中的值

    127.0.0.1:6379> set name john
    OK
    127.0.0.1:6379> get name
    "john"
    

    keys *:获取全部的key

    127.0.0.1:6379> keys *
    1) "name_1"
    2) "n1"
    3) "n2"
    4) "name"
    

     del(key):删除指定的key

    127.0.0.1:6379> keys *
    1) "name_1"
    2) "n1"
    3) "n2"
    4) "name"
    127.0.0.1:6379> del name_1
    (integer) 1
    127.0.0.1:6379> keys *
    1) "n1"
    2) "n2"
    3) "name"
    

     set(key, value, ex=None, px=None, nx=False, xx=False):设置值,不存在则创建,存在则覆盖

     ex为值的过期时间,单位为秒

     px为值的过期时间,单位为毫秒

     nx如果设置为True的话,则只有key不存在的时候,当前的set操作才执行

     xx如果设置为True的话,则只有key存在的时候才执行当前的set操作

    127.0.0.1:6379> set name john
    OK
    127.0.0.1:6379> get name  # 获取name中的值
    "john"
    127.0.0.1:6379> set name jack
    OK
    127.0.0.1:6379> get name  # 覆盖了原先的值
    "jack"
    127.0.0.1:6379> set age 22 ex 2  # 使age中的值存活2秒
    OK
    127.0.0.1:6379> get age
    "22"
    127.0.0.1:6379> get age
    (nil)  # 过了时间就查不到值了
    127.0.0.1:6379> set age 22 px 2000  # 使age中的值存活2000毫秒
    OK
    127.0.0.1:6379> get age
    "22"
    127.0.0.1:6379> get age
    (nil)  # 过了时间就查不到值了
    127.0.0.1:6379> set name jack nx  # 因为name存在,所以set操作执行失败
    (nil)
    127.0.0.1:6379> set name_1 jack nx  # 因为name_1不存在,所以set操作执行成功
    OK
    127.0.0.1:6379> set name john xx  # 因为name存在,所以set操作执行成功
    OK
    127.0.0.1:6379> set name_1 john nx  # 因为name_1不存在,所以set操作执行失败
    (nil)
    

     setex(key, value, time)

     设置值,time为过期时间(数字秒 或 timedelta对象)

     setnx(key, value)

     设置值,只有key不存在的时候,才执行set设置操作

     psetex(name, time_ms, value)

     设置值,time_ms为过期时间(数字毫秒 或 timedelta对象)

     mset(*args, **kwargs):批量设置值

    127.0.0.1:6379> mset n1 php n2 asp
    OK
    127.0.0.1:6379> get n1
    "php"
    127.0.0.1:6379> get n2
    "asp"
    

     mget(*args, **kwargs):批量获取值

    127.0.0.1:6379> mget n1 n2
    1) "php"
    2) "asp"
    

     getset(key, value):获取原来的值并设置新值

    127.0.0.1:6379> get name
    "john"
    127.0.0.1:6379> getset name jack
    "john"
    127.0.0.1:6379> get name
    "jack"
    

     getrange(key, start, end):获取子序列(根据字节获取,非字符)

     start为起始位置(字节),end为结束位置(字节),一个汉字为3个字节

    127.0.0.1:6379> get name
    "jack"
    127.0.0.1:6379> getrange name 1 3
    "ack"
    

     setrange(key, offset, value):修改字符串内容,从指定字符串索引开始向后替换,如果新值太长时,则向后添加

     offset为字符串的索引,字节(一个汉字三个字节),value为要设置的值

    127.0.0.1:6379> get name
    "jack"
    127.0.0.1:6379> setrange name 1 f
    (integer) 4
    127.0.0.1:6379> get name
    "jfck"
    

     strlen(key):返回key中值的字节长度(一个汉字为3个字节)

    127.0.0.1:6379> get name
    "jack"
    127.0.0.1:6379> strlen name
    (integer) 4
    

     append(key, value):在key中的值后面追加内容

     value为要追加的字符串

    127.0.0.1:6379> get name
    "jack"
    127.0.0.1:6379> append name abcd
    (integer) 8
    127.0.0.1:6379> get name
    "jackabcd"
    

     incr(self, key, amount=1):自增key对应的值,当key不存在时,则创建key=amount,如果key存在就自增

     amount为自增数(必须是整数)

    127.0.0.1:6379> incr num
    (integer) 1
    127.0.0.1:6379> incr num
    (integer) 2
    127.0.0.1:6379> incr num
    (integer) 3
    127.0.0.1:6379> incr num
    (integer) 4
    127.0.0.1:6379> incr num
    (integer) 5
    

     incrbyfloat(self, key, amount=1.0):自增key对应的值,当key不存在时,则创建key=amount,如果key存在就自增

     amount为自增数(浮点型)

    127.0.0.1:6379> incrbyfloat float 1.2
    "1.2"
    127.0.0.1:6379> incrbyfloat float 1.2
    "2.4"
    127.0.0.1:6379> incrbyfloat float 1.2
    "3.6"
    127.0.0.1:6379> incrbyfloat float 1.2
    "4.8"
    127.0.0.1:6379> incrbyfloat float 1.2
    "6"
    127.0.0.1:6379> incrbyfloat float 1.2
    "7.2"
    

     decr(self, name, amount=1):自减key对应的值,当key不存在时,则创建key=amount,如果key存在就自减

     amount为自减数(整数)

    127.0.0.1:6379> decr num
    (integer) 4
    127.0.0.1:6379> decr num
    (integer) 3
    127.0.0.1:6379> decr num
    (integer) 2
    127.0.0.1:6379> decr num
    (integer) 1
    127.0.0.1:6379> decr num
    (integer) 0
    127.0.0.1:6379> decr num
    (integer) -1
    127.0.0.1:6379> decr num
    (integer) -2
    

     setbit(key, offset, value):对key中值的二进制的表示位进行操作

     offset为位的索引(将值变换成二进制后再进行索引),value为设置的值,只能是 1 或 0

    127.0.0.1:6379> get name
    "jack"
    # 对应的二进制为:
    # 01101010 01100001 01100011 01101011
    # 把c改为a
    127.0.0.1:6379> setbit name 22 0
    (integer) 1
    127.0.0.1:6379> get name
    "jaak"
    

     getbit(key, offset):获取key对应的值的二进制表示中的某位的值(0或1)

    127.0.0.1:6379> get name
    "jack"
    127.0.0.1:6379> getbit name 22
    (integer) 1
    

     bitcount(key, start=None, end=None):获取key对应的值的二进制表示中 1 的个数

     start为位起始位置,end为位结束位置

    127.0.0.1:6379> get name
    "jack"
    127.0.0.1:6379> bitcount name 2 10
    (integer) 9
    
  • 相关阅读:
    人才培养的金字塔模型
    3D建模技术-讲稿-5-基础
    3D建模技术-讲稿-4-基础
    3D建模技术-讲稿-3-基础
    3D建模技术-讲稿-1-入门
    3D建模技术-讲稿-2-基础
    3D建模技术-讲稿-1-方凳
    the latest Ext2Fsd(ext2fsd-0.69) doesn't work after windows 10 --- solved using ext2fsd-0.53 or 0.68
    欢迎同学们参加新乡学院2019年3D打印暑期夏令营
    (OK) 自己动手构建Linux发行版---简版
  • 原文地址:https://www.cnblogs.com/sch01ar/p/8470576.html
Copyright © 2020-2023  润新知