zoukankan      html  css  js  c++  java
  • Redis存储

    redis库提供了两个类:Redis和StrictRedis来实现Redis的命令操作,前者是为了兼容老版本库的集中方法,一般就用StrictRedis

    一. redis基本操作

    1. 设置redis密码
    在redis.conf中找到requirepass行,修改后面的参数,即可设置密码
    比如requirepass 123,重启生效
    
    2. 源码安装的重启方法
    redis-cli进入命令行,然后shutdown即可
    
    3. 启动方法
    redis-server redis.conf
    
    4. 输入密码方法: 进入命令行后,执行auth 123

    二. 键的一些判断和操作方法

    方法 作用 参数说明 示例 示例说明 示例结果
    exists(name) 判断一个值是否存在 name:键名 redis.exists('name') 是否存在name这个键 True
    delete(name) 删除一个键 name:键名 redis.delete('name') 删除name这个键 1
    type(name) 判断键类型 name:键名 redis.type('name') 判断name这个键类型 b'string'
    keys(pattern) 获取所有符合规则的键 pattern:匹配规则 redis.keys('n*') 获取所有以n开头的键 [b'name']
    randomkey() 获取随机的一个键   randomkey() 获取随机的一个键 b'name'
    rename(str, dst) 重命名键 src:原键名;dst:新键名 redis.rename('name', 'newname' 将name重命名为newname True
    dbsize() 获取当前数据库中键的数目   dbsize() 当前数据库中键的数目 100
    expire(name, time) 设置键的过期时间,单位为秒 name:键名; time:秒数 redis.expire('name', 2) name键的过期时间为2秒 True
    ttl(name) 获取键的过期时间 name:键名 redis.ttl('name') -1表示永不过期 -1
    move(name, db) 将键移动到其他数据库 name:键名;db:数据库代号 move('name', 2) 将name移动到2号数据库 True
    flushdb() 删除当前数据库中的所有键   flushdb()   True
    flushall() 删除所有数据库中的所有键   flushall()   True

    三. 字符串操作

    # 连接Redis
    >>> from redis import StrictRedis
    >>> redis = StrictRedis(host='localhost', port=6379, db=0, password='123')
    
    1. 给name键赋值为Bob
    >>> redis.set('name', 'Bob')
    True
    
    2. 返回name键的值
    >>> redis.get('name')
    b'Bob'
    
    3. 给name键赋值,并返回上次的value
    >>> redis.getset('name','Mike')
    b'Bob'
    >>> redis.get('name')
    b'Mike'
    
    4. 返回多个键对应的值
    >>> redis.mget(['name','nickame'])
    [b'Mike', None]
    >>> redis.set('nickname', 'bob')
    True
    >>> redis.mget(['name','nickname'])
    [b'Mike', b'bob']
    
    5. 如果键不存在,则赋值
    >>> redis.setnx('newname', 'James')
    True
    >>> redis.setnx('newname', 'James')
    False
    >>> redis.get('newname')
    b'James'
    
    6. 给键名赋值,并设定过期时间
    >>> redis.setex('name', 1, 'James')
    True
    
    7. 设置name为Hello,并在index为5的位置补上'World'字符串
    >>> redis.set('name','Hello')
    True
    >>> 
    >>> redis.setrange('name',5,'World')
    10
    >>> redis.get('name')
    b'HelloWorld'
    
    8. 设置多个键值对
    >>> redis.mset({'name1':'durant', 'name2':'James'})
    True
    >>> redis.get('name1')
    b'durant'
    >>> redis.get('name2')
    b'James'
    
    9. 在键不存在时,才设置键的值
    >>> redis.mset({'name3':'durant', 'name4':'James'})
    >>> redis.msetnx({'name3':'jin', 'name4':'hong'})
    False
    >>> redis.get('name3')
    b'durant'
    >>> redis.get('name4')
    b'James'
    >>> 
    
    10. 键对应的值增1,若不存在此键,则会创建并赋值为1
    >>> redis.incr('age',1)
    1
    >>> redis.get('age')
    b'1'
    
    11. age键对应的值减1,若不存在,则会创建此键并设置为-1
    >>> redis.decr('age',1)
    0
    
    12. 向键为nickname的值后追加‘OK'字符
    >>> redis.append('nickname', 'OK')
    5
    >>> redis.get('nickname')
    b'bobOK'
    
    13. 返回name值索引为1-4的字符
    >>> redis.substr('name',1,4)
    b'ello'
    >>> redis.getrange('name',1,4)
    b'ello'

    四. 列表操作

    1. 向键为list的列表末尾添加1,2,3,4,5
    >>> redis.rpush('list',1,2,3,4,5)
    5
    
    2. 向键为list的列表头部添加0
    >>> redis.lpush('list',0)
    6
    
    3. 返回键为list的列表的长度
    >>> redis.llen('list')
    6
    
    4. 返回起始索引为0到5对应的列表
    >>> redis.lrange('list',0,5)
    [b'0', b'1', b'2', b'3', b'4', b'5']
    
    5. 保留索引1-5对应的列表
    >>> redis.ltrim('list',1,5)
    True
    
    6. 返回键为list的列表索引为1的元素
    >>> redis.lindex('list',1)
    b'2'
    
    7. 将list列表索引为1的位置赋值为5
    >>> redis.lset('list',1,5)
    True
    >>> redis.lindex('list',1)
    b'5'
    
    8. 删除列表中的多个值,2表示两个,5表示值
    >>> redis.lrem('list',2,5)
    2  #表示删除的个数,如果列表中只有一个5,则返回1
    >>> redis.lrange('list',0,5)
    [b'1', b'3', b'4']
    
    9. 返回并删除列表中的第一个元素
    >>> redis.lpop('list')
    b'1'
    
    10. 返回并删除列表中的最后一个元素
    >>> redis.rpop('list')
    b'4'
    
    11. 返回并删除列表中的首个元素,如果列表为空,并设置timeout=0时,则会一直阻塞等待
    >>> redis.blpop('list')
    (b'list', b'3')
    >>> redis.blpop('list',timeout=1) 此时列表已经为空,等待一秒后输出空
    >>> 
    
    12. 返回并删除列表中的最后一个元素,和rpop的区别是里面可加timeout参数
    >>> redis.rpush('list',1,2,3)
    3
    >>> redis.brpop('list')
    (b'list', b'3')
    
    13. 删除列表list的尾元素,并将其添加到列表list2的头部
    >>> redis.rpoplpush('list','list2')
    b'2'
    >>> redis.lindex('list2',0)
    b'2'


     

  • 相关阅读:
    CentOs7-替换下载源
    CentOs7-常用命令
    Django Nginx+uwsgi 安装配置
    Linux操作系统下文件作用
    U盘创建macOS安装盘
    国内开源镜像站点汇总
    gcd常见用法
    mac rvm 升级 ruby 安装cocoapod 指定版本
    confluence 搭建 wiki 并破解
    homebrew 安装 java 指定版本
  • 原文地址:https://www.cnblogs.com/regit/p/9349390.html
Copyright © 2011-2022 走看看