zoukankan      html  css  js  c++  java
  • redis操作 + python连接redis(StrictRedis)

    Redis

    方法命令总结

    keysstringhashlistsetzset
    exists sethsetlpushsaddzadd
    typesetexhmsetrpushsmemberszrange
    deletemsethkeyslinsertsremzangebyscore
    expireappendhvalslrange zscore
    getrangegethgetlset zrem
    ttlmgethmgetlrem zremrangebyscore
     keyhdel   

    string类型

    • 字符串类型是 Redis 中最为基础的数据存储类型。
    • 它在 Redis 中是二进制安全的,这便意味着该类型可以接受任何格式的数据。
    • 如JPEG图像数据或Json对象描述信息等。
    • 在Redis中字符串类型的Value最多可以容纳的数据长度是512M。

    set:

    #设置键值:
    set key value
    
    #设置键为name值为xiaoming的数据
    set name xiaoming

     setex:

    #设置键值及过期时间,以秒为单位
    setex key seconds value
    
    #设置键为aa值为aa过期时间为3秒的数据
    setex aa 3 aa

    mset:

    #设置多个键值
    mset key1 value1 key2 value2 ...
    
    #设置键为a1值为python、键为a2值为java、键为a3值为c
    mset a1 python a2 java a3 c++

    append:

    #追加值
    append key value
    
    #向键为a1中追加值abc
    append a1 abc

    get:

    #获取:根据键获取值,如果不存在此键则返回nil
    get key
    
    #获取键name的值
    get name

    mget:

    #获取多个键获取多个值
    mget key1 key2 ...
    
    #获取键a1、a2、a3的值
    mget a1 a2 a3

    键命令

    key:

    #查找键,参数支持正则表达式
    keys pattern
    
    #查看所有键
    keys *
    
    #查看名称中包含a的键
    keys a*

    exists

    #判断键是否存在,如果存在返回1,不存在返回0
    exists key1
    
    #判断键a1是否存在
    exists a1

    type:

    #查看键对应的value的类型
    type key
    
    #查看键a1的值类型为redis⽀持的五种类型中的⼀种
    type a1

    delete:

    #删除键及对应的值
    del key1 key2...
    
    #删除键a1、a2
    del a2 a3

     expire:

    #设置过期时间,以秒为单位
    #如果没有指定过期时间则⼀直存在,直到使⽤DEL移除
    expire key seconds
    
    #设置键a1的过期时间为3秒
    expire a1 3

     ttl:

    #查看有效时间,以秒为单位
    ttl key
    
    #查看键a1的有效时间
    ttl a1

    hash类型

    • ash⽤于存储对象,对象的结构为属性、值
    • 值的类型为string

     hset:

    #设置单个属性
    hset key field value
    
    #设置键 user的属性name为xiaoming
    hset user name xiaoming

    hmset:

    #设置多个属性
    hmset key field1 value1 field2 value2 ...
    
    #设置键u2的属性name为itcast、属性age为11
    hmset u2 name itcast age 11

    hkeys:

    #获取指定的键的所有的属性
    hkeys key
    
    #获取键a1的所有属性
    hkeys a1

    hget:

    #获取多个属性的值
    hmget key field1 field2 ...
    
    #获取键u2属性name的值
    hget u2 name

     hmget:

    #获取多个属性的值
    hmget key field1 field2 ...
    
    #获取键u2属性name、age的值
    hmget u2 name age

    hvals:

    #获取所有属性的值
    hvals key
    
    #获取键u2所有属性的值
    hvals u2

    hdel

    #删除整个hash键及值,使用del命令
    #删除属性,属性对应的值会被一起删除
    hdel key field1 field2 ...
    
    #删除键u2的属性age
    hdel u2 age

    list类型

    • 列表的元素类型为string
    • 按照插入顺序排序

    lpush

    #在左侧插入数据
    lpush key value1 value2 ...
    
    #从键为a1的列表左侧加⼊数据a 、 b 、c
    lpush a1 a b c

    rpush

    #在右侧插入数据
    rpush key value1 value2 ...
    
    #从键为a1的列表右侧加⼊数据0、1
    rpush a1 0 1

    linsert

    #在指定元素的前或后插入新元素
    linsert key before或after 现有元素 新元素
    
    #在键为a1的列表中元素b前加⼊3
    linsert a1 before b 3

    lrange

    #start、stop为元素的下标索引
    #索引从左侧开始,第⼀个元素为0
    #索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
    
    #返回列表里指定范围内的元素
    lrange key start stop
    
    #获取键为a1的列表所有元素
    lrange a1 0 -1

    lset

    #设置指定索引位置的元素值
    lset key index value
    
    #修改键为a1的列表中下标为1的元素值为z
    lset a 1 z

    lrem

    #列表中前count次出现的值为value的元素移除
    #count > 0: 从头往尾移除
    #count < 0: 从尾往头移除
    #count = 0: 移除所有
    
    #删除指定元素
    lrem key count value
    
    #向列表a2中加⼊元素a、b、a、b、a、b
    lpush a2 a b a b a b
    
    #从a2列表右侧开始删除2个b
    lrem a2 -2 b

    ltrim

    #截取保留的元素
    ltrim key start stop
    
    # 只保留前三个元素(0-2)
    ltrim name 0 2

    set类型

    sadd:

    #添加元素
    sadd key member1 member2 ...
    
    #向键a3的集合中添加元素zhangsan、lisi、wangwu
    sadd a3 zhangsan sili wangwu

     smembers

    #返回所有的元素
    smembers key
    
    #获取键a3的集合中所有元素
    smembers a3

    srem

    #删除指定元素
    srem key
    
    #删除键a3的集合中元素wangwu
    srem a3 wangwu

    zset类型:

    • sorted set,有序集合
    • 元素为string类型
    • 元素具有唯一性,不重复
    • 每一个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序
    • 注:zset类型没有修改操作

     zadd

    #添加
    zadd key score1 member1 score2 member2 ...
    
    #向键a4的集合中添加元素lisi、wangwu、zhaoliu、zhangsan,权重分别为4、5、6、3
    
    zadd a4 4 lisi 5 wangwu 6 zhaoliu 3 zhangsan

    zrange

    #返回指定范围内的元素(-1表示最后一个元素)
    #start、stop为元素的下标索引
    #索引从左侧开始,第一个元素为0
    #索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
    zrange key start stop
    
    #获取键a4的集合中所有元素
    zrange a4 0 -1

    zrangebyscore 

    #返回score值在min和max之间的成员
    zrangebyscore key min max
    
    #获取键a4的集合中权限值在5和6之间的成员
    zrangebyscore a4 5 6

     zscore 

    #返回成员member的score值
    zscore key member
    
    #获取键a4的集合中元素zhangsan的权重
    zscore a4 zhangsan

    zrem

    #删除指定元素
    zrem key member1 member2 ...
    
    #删除集合a4中元素zhangsan
    zrem a4 zhangsan

    zremrangebyscore 

    #删除集合a4中元素zhangsan
    zrem a4 zhangsan
    
    #删除权重在指定范围的元素
    zremrangebyscore key min max
    
    #删除集合a4中权限在5、6之间的元素
    zremrangebyscore a4 5 6

    StrictRedis对象⽅法

    引⼊模块

    #引入模块
    #这个模块中提供了StrictRedis对象,⽤于连接redis服务器,并按照不同类型提供 了不同⽅法,进⾏交互操作
    
    from redis import StrictRedis

    通过init创建对象,指定参数host、port与指定的服务器和端⼝连接,host默认为localhost,port默认为6379,db默认为0

    sr = StrictRedis(host='localhost',port=6379,db=0)

    简写:

    sr = StrictRedis()

     string-增加

    try:
        #创建StrictRedis对象,与redis服务器建⽴连接
        sr=StrictRedis()
    
        #添加键name,值为itheima
        result=sr.set('name','xiaoming')
    
        #输出响应结果,如果添加成功则返回True,否则返回False
        print(result)
    
    except Exception as e:
        print(e)

    string-获取

    try:
        #创建StrictRedis对象,与redis服务器建⽴连接
        sr=StrictRedis()
    
        #获取键name的值
        result = sr.get('name')
    
        #输出键的值,如果键不存在则返回None
        print(result)
    
    except Exception as e:
        print(e)

    string-修改

    try:
        #创建StrictRedis对象,与redis服务器建⽴连接
        sr=StrictRedis()
    
        #设置键name的值,如果键已经存在则进⾏修改,如果键不存在则进⾏添加
        result = sr.set('name','xiaoming')
    
        #输出响应结果,如果操作成功则返回True,否则返回False
        print(result)
    
    except Exception as e:
        print(e)

    string-删除

    try:
        #创建StrictRedis对象,与redis服务器建⽴连接
        sr=StrictRedis()
    
        #设置键name的值,如果键已经存在则进⾏修改,如果键不存在则进⾏添加
        result = sr.delete('name')
    
        #输出响应结果,如果删除成功则返回受影响的键数,否则则返回0
        print(result)
    
    except Exception as e:
        print(e)

    获取键

     try:
        #创建StrictRedis对象,与redis服务器建⽴连接
        sr=StrictRedis()
    
        #获取所有的键
        result=sr.keys()
    
        #输出响应结果,所有的键构成⼀个列表,如果没有键则返回空列表
        print(result)
        
    except Exception as e:
        print(e)
  • 相关阅读:
    设计模式的原则
    命令模式
    访问者模式
    策略模式
    外观模式
    组合模式
    原型模式
    合并有序数组
    判断二叉树是否对称
    中序遍历二叉树
  • 原文地址:https://www.cnblogs.com/yblackd/p/14533412.html
Copyright © 2011-2022 走看看