zoukankan      html  css  js  c++  java
  • Redis常见用法

    1. Python中redis模块的基本使用

      redis_connect

    # -*- coding:utf-8 -*-
    # Author:Wong Du
    
    import redis
    
    r = redis.Redis(host='localhost', port=6379, db=10)
    
    r.set('names', 'xiaohuan')
    
    print(r.get('names'))

      redis_pool

    # -*- coding:utf-8 -*-
    # Author:Wong Du
    
    import redis
    
    pool = redis.ConnectionPool(host='localhost', port=6379)
    
    r = redis.Redis(connection_pool=pool)
    
    r.set('age', '22')
    
    print(r.get('age'))

      redis_管道

    # -*- coding:utf-8 -*-
    # Author:Wong Du
    
    import redis, time
    
    pool = redis.ConnectionPool(host='111.230.64.164', port=6379, db=15)
    
    r = redis.Redis(connection_pool=pool)
    
    pipe = r.pipeline(transaction=True)
    
    pipe.set('name', 'xiaoxian')
    # r.set('names', 'xiaoxians')
    print("--------do other thing--------")
    pipe.set('age', 23)
    
    time.sleep(10)
    print("Start to exec...")
    pipe.execute()

    2. redis介绍及命令行常见用法

    redis常见用法
    
    连接、连接池
    常用操作
        String
        Hash
        List
        Set
        Sort Set
    管道
    发布订阅
    
    连接、连接池
        通过连接池来管理对一个redis server的所有连接,可以避免每次建立、释放连接的开销。
        默认,每个redis实例都会维护一个自己的连接池。
        可以建立一个连接池,然后作为参数redis,这样可以实现多个redis实例共享一个连接池。
    
    String操作
        redis中的string在内存中按照一个key对应一个value来存储,类似于python中的变量
        SET key value [EX seconds] [PX milliseconds] [NX|XX]
        在redis中,set命令,若key存在则修改,不存在则创建
        示例:set name china [ex 3] [nx|xx]
            ex 指定这个key存活多少秒(即过期时间)
            px 指定这个key存活多少毫秒
            nx 只有当key不存在时,命令才执行
            xx 只有当key存在时,命令才执行
        SETNX key value == set key value nx
        summary: Set the value of a key, only if the key does not exist
        示例:setnx name china
        SETEX key seconds value
        summary: Set the value and expiration of a key(设置key的过期时间秒)
        示例:setex name 3 china
        PSETEX key milliseconds value
        summary: Set the value and expiration in milliseconds of a key(设置key的过期时间毫秒)
        示例:psetex name 3 china
        MSET key value [key value ...]
        summary: Set multiple keys to multiple values(批量设置)
        示例:mset name1 china name2 usa name3 japan
        GET key
        summary: Get the value of a key(获取key的value)
        示例: get name
        MGET key [key ...]
        summary: Get the values of all the given keys(获取keys的values)
        示例:mget key1 key2
        GETSET key value
        summary: Set the string value of a key and return its old value(设置新的value并返回旧的value)
        示例:getset name china2
        SETRANGE key offset value
        summary: Overwrite part of a string at key starting at the specified offset(修改字符串内的字符)
        示例:setrange name 0 C (效果:china -> China)
        SETBIT key offset value
        summary: Sets or clears the bit at offset in the string value stored at key(对value的二进制位进行操作)
        示例:setbit name 8 1
        **用途举例,用最省空间的方式,存储在线用户数及分别是哪些用户在线
        GETBIT key offset
        summary: Returns the bit value at offset in the string value stored at key(获取对应二进制位的值0或1)
        示例:getbit name 10
        BITCOUNT key [start end]
        summary: Count set bits in a string(统计字符串中二进制位为1的个数)
        示例:bitcount name [0 10]
        STRLEN key
        summary: Get the length of the value stored in a key(返回value的字节长度)
        示例: strlen name
        INCR key
        summary: Increment the integer value of a key by one(自增key对应的值)
        示例: incr names2
        DECR key
        summary: Decrement the integer value of a key by one(自减key对应的值)
        示例: decr names2
        APPEND key value
        summary: Append a value to a key(在value后面追加内容)
        示例: append name " is very strong"
    
    Hash操作
        redis中的Hash在在内存中按照一个key对应一个dict来存储
        hash表现形式上类似pyhton中的dict,可以存储一组关联性较强的数据
        HSET key field value
        summary: Set the string value of a hash field(表现形式:key={field:value})
        示例:hset info name china     创建或修改
        HMSET key field value [field value ...]
        summary: Set multiple hash fields to multiple values(批量创建或修改)
        示例:hmset info name1 china name2 usa name3 japan
        HGET key field
        summary: Get the value of a hash field(查看)
        示例:hget info name1
        HMGET key field [field ...]
        summary: Get the values of all the given hash fields(查看多个)
        示例: hmget info name1 name2 name3
        HGETALL key
        summary: Get all the fields and values in a hash(查看hash内的所有信息)
        示例: hgetall info
        HLEN key
        summary: Get the number of fields in a hash(查看hash内所有fields的个数)
        示例:hlen info
        HKEYS key
        summary: Get all the fields in a hash(查看hash内所有的fields)
        示例: hkeys info
        HVALS key
        summary: Get all the values in a hash(查看hash内所有的values)
        示例:hvals info
        HEXISTS key field
        summary: Determine if a hash field exists(判断hash内是否存在指定的field,存在返回1)
        示例:hexists info name
        HDEL key field [field ...]
        summary: Delete one or more hash fields(删除一个或多个field)
        示例:hdel info name3 name2
        HINCRBY key field increment
        summary: Increment the integer value of a hash field by the given number(value自增)
        示例:hincrby info2 name 1
        HSCAN key cursor [MATCH pattern] [COUNT count]
        summary: Incrementally iterate hash fields and associated values(可迭代对象获取fields和values)
        示例:hscan info 0
    
    List操作
        redis中的List在在内存中按照一个key对应一个List来存储,类似于python中的list
        LPUSH key value [value ...]
        summary: Prepend one or multiple values to a list(创建或添加key里的value,从左)
        示例:lpush list role1 role2
        LPUSHX key value
        summary: Prepend a value to a list, only if the list exists(当list存在时添加)
        示例:lpushx list role3
        LLEN key
        summary: Get the length of a list(获取key中元素的个数)
        示例:llen list
        LSET key index value
        summary: Set the value of an element in a list by its index(通过下标修改指定的value)
        示例:lset list 1 role100
        LREM key count value
        summary: Remove elements from a list(删除list中指定的value,若有多个,可用count指定删除多个)
        示例:lrem list 2 role1
        LPOP key
        summary: Remove and get the first element in a list(移除左边第一个value并返回)
        示例:lpop list
        LINDEX key index
        summary: Get an element from a list by its index(通过下标获取指定的value)
        示例:lindex list 1
        LRANGE key start stop
        summary: Get a range of elements from a list(查看指定范围的value)
        示例:lrange list 0 11
        LTRIM key start stop
        summary: Trim a list to the specified range(修剪list到指定范围,相当于截取)
        示例:ltrim list 0 5
        RPOPLPUSH source destination
        summary: Remove the last element in a list, prepend it to another list and return it(删除原list的右边第一个value并返回,然后从目标list的左边添加进去)
        示例:rpoplpush list list2
        BLPOP key [key ...] timeout
        summary: Remove and get the first element in a list, or block until one is available(若list为空,则阻塞,否则删除左边第一个value,0表示永远阻塞)
        示例:blpop list 30
        BRPOPLPUSH source destination timeout
        summary: Pop a value from a list, push it to another list and return it; or block until one is available(删除原list的右边第一个value并返回,然后从目标list的左边添加进去,若原list为空,则阻塞)
        示例:brpoplpush list list2 0
    
    Set集合操作
        SADD key member [member ...]
        summary: Add one or more members to a set(创建集合或添加members到集合中)
        示例:sadd s role1 role1 role2 role3
        SCARD key
        summary: Get the number of members in a set(统计集合中members个数)
        示例: scard s
        SDIFF key [key ...]
        summary: Subtract multiple sets(key1有key2没有)
        示例: sdiff s s2
        SDIFFSTORE destination key [key ...]
        summary: Subtract multiple sets and store the resulting set in a key(key1有key2没有,放到指定的目的集合中)
        示例:sdiffstore s3 s s2
        SINTER key [key ...]
        summary: Intersect multiple sets(取交集)
        示例: sinter s s2
        SINTERSTORE destination key [key ...]
        summary: Intersect multiple sets and store the resulting set in a key(取交集并输出到另一个集合)
        示例:sinterstore s4 s s2
        SUNION key [key ...]
        summary: Add multiple sets(取并集)
        示例:sunion s s2
        SUNIONSTORE destination key [key ...]
        summary: Add multiple sets and store the resulting set in a key(取并集并输出到另一个集合)
        示例:sunionstore s6 s s2
        SMEMBERS key
        summary: Get all the members in a set(查看集合中所有members)
        示例:smembers s
        SISMEMBER key member
        summary: Determine if a given value is a member of a set(判断指定member是否在集合当中)
        示例:sismember s role1
        SMOVE source destination member
        summary: Move a member from one set to another(把原集合的某个member移动到目标集合)
        示例:smove s s5 role1
        SPOP key [count]
        summary: Remove and return one or multiple random members from a set(删除集合中随机member并返回)
        示例:spop s2
        SRANDMEMBER key [count]
        summary: Get one or multiple random members from a set(从集合中随机获取1个或多个members)
        示例:srandmember s3 2
        SSCAN key cursor [MATCH pattern] [COUNT count]
        summary: Incrementally iterate Set elements(可迭代对象获取member)
        示例:sscan s2 0
    
    有序set集合操作
        ZADD key [NX|XX] [CH] [INCR] score member [score member ...]
        summary: Add one or more members to a sorted set, or update its score if it already exists
        示例:zadd z 1 age 5 name 3 role
        ZCARD key
        summary: Get the number of members in a sorted set(统计member个数)
        示例:zcard z
        ZCOUNT key min max
        summary: Count the members in a sorted set with scores within the given values(统计优先级在min~max区间的members数量)
        示例:zcount z 0 3
        ZINCRBY key increment member
        summary: Increment the score of a member in a sorted set(自增指定member的优先级)
        示例:zincrby z 1 role
        ZRANGE key start stop [WITHSCORES]
        summary: Return a range of members in a sorted set, by index(查看指定区间的members)
        示例:zrange z 0 1
        ZRANK key member
        summary: Determine the index of a member in a sorted set(获取指定member的index下标)
        示例:zrank z role
        ZREM key member [member ...]
        summary: Remove one or more members from a sorted set(删除集合的指定成员)
        示例:zrem z role name
        ZREMRANGEBYRANK key start stop
        summary: Remove all members in a sorted set within the given indexes(指定下标范围删除members)
        示例:zremrangebyrank z 0 3
        ZREMRANGEBYSCORE key min max
        summary: Remove all members in a sorted set within the given scores(指定优先级范围删除members)
        示例:zremrangebyscore z 1 4
        ZSCORE key member
        summary: Get the score associated with the given member in a sorted set(获取指定成员的优先级)
        示例:zscore z role
    
    其他常用操作
        del
        exists
        keys
        expire
        rename
        move
        randomkey()
        type
        scan
    redis常见用法
  • 相关阅读:
    ImageView的属性android:scaleType
    Java容器类List、ArrayList、Vector及map、HashTable、HashMap分别的区别. (转)
    Pro Andorid3第一章:Android平台简介
    Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
    归纳法(induction)
    dual graph
    Project和编程过程
    维度
    dos
    关于glfrustum与hemicube的真实长度的关系
  • 原文地址:https://www.cnblogs.com/Caiyundo/p/9561548.html
Copyright © 2011-2022 走看看