• redis对键进行的相关操作


    redis对键操作的相关命令以及如何在python使用这些命令

    redis对键操作的命令:

    命令

    语法

    概述

    返回值

    Redis DEL 命令

    del key [key ...]

    该命令用于在 key 存在时删除 key。

    返回被删除键的数量

    Redis Dump 命令

    dump key_name

    序列化给定 key ,并返回被序列化的值。

    返回序列化后的值

    Redis EXISTS 命令

    exists key [key ...] 

    检查给定 key 是否存在

    若 key 存在返回 1 ,否则返回 0 。

    Redis Expire 命令

    expire key seconds 

    为给定 key 设置过期时间,以秒计。

    设置成功返回 1 。 当 key 不存在或者不能为 key 设置过期时间时返回0

    Redis Expireat 命令

    expireat key timestamp

    为给定 key 设置过期时间,UNIX 时间戳(unix timestamp)。

    设置成功返回 1 。 当 key 不存在或者不能为 key 设置过期时间时返回 0 。

    Redis PEXPIREAT 命令

    pexpire key milliseconds

    设置 key 的过期时间以毫秒计

    设置成功返回 1 。 当 key 不存在或者不能为 key 设置过期时间时返回 0 。

    Redis PEXPIREAT 命令

    pexpireat key milliseconds-timestamp

    设置 key 过期时间的时间戳(unix timestamp) 以毫秒计

    设置成功返回 1 。 当 key 不存在或者不能为 key 设置过期时间时返回 0 。

    Redis Keys 命令

    keys pattern

    查找所有符合给定模式( pattern)的 key 。

    返回符合给定模式的 key 

    Redis Move 命令

    move key db

    将当前数据库的 key 移动到给定的数据库 db 当中

    移动成功返回 1 ,失败则返回 0 

    Redis PERSIST 命令

    persist key

    移除 key 的过期时间,key 将持久保持

    当过期时间移除成功时,返回 1 。

    如果 key 不存在或 key 没有设间,返回 0 

    Redis Pttl 命令

    pttl key

    以毫秒为单位返回 key 的剩余的过期时间。

         当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时

      间时,返回 -1 。 否则,以毫秒为单位,返回 key 的剩余生存时间。

    Redis TTL 命令

    ttl key

    以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)

    当数据库不为空时,返回一个 key 。 当数据库为空时,返回 nil 

    Redis RANDOMKEY 命令

    randomkey

    从当前数据库中随机返回一个 key 。

    改名成功时提示 OK ,失败时候返回一个错误。
    当 OLD_KEY_NAME 不存在时,返回一个错误。 当 NEW_KEY_NAME 已经存在时, RENAME 命令将覆盖旧值。

    Redis Rename 命令

    rename key newkey

    修改 key 的名称

    改名成功时提示 OK ,失败时候返回一个错误.
    当 OLD_KEY_NAME 不存在时,返回一个错误。 当 NEW_KEY_NAME 已经存在时, RENAME 命令将覆盖旧值。

    Redis Renamenx 命令

    renamenx key newkey

    仅当 newkey 不存在时,将 key 改名为 newkey 。

    修改成功时,返回 1 。 如果 NEW_KEY_NAME 已经存在,返回 0  当OLD_KEY_NAME 不存在时,返回错误ERR no such key

    Redis Type 命令

    type key

    返回 key 所储存的值的类型

    返回 key 所储存的值的类型。none (key不存在)  string (字符串)  list (列表)  set (集合)  zset (有序集)  hash (哈希表)

     

    在python中对键操作:

    # -*- coding: utf-8 -*-

    import redis

    # 连接本地的redis

    r = redis.Redis(host="127.0.0.1",port=6379)

    1. delete DEL 命令用于删除已存在的键。不存在的 key 会被忽略

    print(r.set('1', 'hello redis')) # set 设置指定 key 的值, 如果设置正确返回 True
    
    print(r.get('1'))# 得到 键为1 的值    #  hello redis
    print(r.delete('1')) # 删除 键为1 的值 
    
    print(r.get('1')) # 因为上面已经把键为1 的值删除掉,所以返回的是None
    

      

    2. exists

    # 设定键为2的值是  hello redis
    r.set('2', 'hello redis')
    # 存在就返回True 不存在就返回False
    print(r.exists('2'))  # 返回True
    print(r.exists('33'))  # 返回False
    

    3. Expire 命令用于设置 key 的过期时间。key 过期后将不再可用。

    r.set('2', 'hello redis')
    # 成功就返回True 失败就返回False,下面的20表示是20秒
    print(r.expire('2',20))
    # 如果时间没事失效我们能得到键为2的值,否者是None
    print(r.get('2'))
    

    4. Expireat 命令用于以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间。key 过期后将不再可用。主意:时间精确到秒,时间戳是10为数字

    r.set('2', 'hello redis')
    # 成功就返回True 失败就返回False,下面的1598033936表示时间戳
    print(r.expireat('2',1598026546))
    print(r.get('2'))
    

    5.PEXPIREAT 命令用于设置 key 的过期时间,已毫秒技。key 过期后将不再可用。主意:时间精确到毫秒,时间戳是13位数字

    r.set('2', 'hello redis')
    #成功就返回True 失败就返回False。
    print(r.expireat('2',1598666972100))
    print(r.get('2'))
    

    6. Keys 命令用于查找所有符合给定模式 pattern 的 key 。

    print(r.set('111', '11'))
    print(r.set('122', '12'))
    print(r.set('113', '13'))
    print((r.keys(pattern='11*'))
    # 输出的结果是 ['113', '111'] 因为键122不和 11* 匹配
    

    7. MOVE 命令用于将当前数据库的 key 移动到给定的数据库 db 当中,select可以设定当前的数据库,如有需要请看select命令
    因为我们默认使用的数据库是db0,我们可以使用下面的命令键 2 移动到数据库 1 中去

     r.move(2,1)

    8. PERSIST 命令用于移除给定 key 的过期时间,使得 key 永不过期

    # 设定键为 1 的值为11
    print(r.set('1', '11'))
    # 设定键 1 过期时间为100秒
    print(r.expire(1,100))
    # 查看键 1 的过期时间还剩下多少
    print(r.ttl('1'))
    # 目的是13秒后移除键 1 的过期时间
    import time
    time.sleep(3)
    # 查看键 1 的过期时间还剩下多少
    print(r.ttl('1'))
    #移除键 1 的过期时间
    r.persist(1)
    # 查看键 1 的过期时间还剩下多少  输出的结果是 None,我们可以通过redis desktop manager 查看键 1 的过期时间
    print(r.ttl('1'))
    

    9.   Pttl 命令以毫秒为单位返回 key 的剩余过期时间。

    # 当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以毫秒为单位,返回 key 的剩余生存时间。
    # 设定键为 1 的值为11
    print(r.set('1', '11'))
    #设定键 1 过期时间为100秒
    print(r.expire(1,100))
    import time
    time.sleep(3)
    #返回的结果是 96994 ,运行的结果不是固定的,大于是97秒钟,主意是为了展示出返回的结果是毫秒,一秒等于1000毫秒
    print(r.pttl('1'))
    

    10.   TTL 命令以秒为单位返回 key 的剩余过期时间。

    # 当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以毫秒为单位,返回 key 的剩余生存时间。
    #设定键为 1 的值为11
    print(r.set('1', '11'))
    print r.expire(1,100)   #设定键 1 过期时间为100秒
    import time
    time.sleep(3)
    print(r.ttl('1')) #返回的结果是 97
    print(r.ttl('123')) #因为键 123 不存在  所以返回的结果是None
    

    11.RANDOMKEY 命令从当前数据库中随机返回一个 key。当数据库不为空时,返回一个 key 。 当数据库为空时,返回 nil 。

    print(r.randomkey()) # 数据库返回的是默认的数据库 key
    

    12 .Rename 命令用于修改 key 的名称 。改名成功时提示 OK ,失败时候返回一个错误。

    print(r.rename(1,1111)) #修改成功返回 True
    print(r.rename(222,1111)) #如果key 不存在 修改失败返回 redis.exceptions.ResponseError: no such key
    

    13. Renamenx 命令用于在新的 key 不存在时修改 key 的名称 。

    print(r.exists(123123)) # 返回false
    print(r.renamenx(1111,123123)) # 成功返回True
    print(r.renamenx(1111,123123)) # 失败返回    redis.exceptions.ResponseError: no such key
    

    14. Type 命令用于返回 key 所储存的值的类型

    # 返回 key 的数据类型,数据类型有:none (key不存在),string (字符串),list (列表),set (集合),zset (有序集),hash (哈希表),
    print (r.set('1',"111111111"))
    print (r.type('1')) # 返回的结果是string
    
    print r.sadd('2','222222222222')
    print r.type('2') #返回的结果是set
    
    print r.lpush('3','33333333')
    print r.type('3') #返回的结果是list
    
  • 相关阅读:
    使用BeanShell 对比取出来的值
    https 请求的端口是443 注意
    Jmeter录制App 请求是HTTPS的
    Charles-断点
    随手记--分配事件概率
    看日志有没有 出现错误的字段 (如 crash ) 查找app闪退
    学习的网站
    xss 攻击 sql 注入
    app的apk 安装的方法--adb--命令安装 (含把apk放某个文件夹,每次启动自己安装)
    把2列相加的方法
  • 原文地址:https://www.cnblogs.com/KIV-Y/p/10753237.html
Copyright © 2020-2023  润新知