• python 操作redis数据


    python 操作redis 各种类型的数据

      1 # encoding:utf-8
      2 import redis
      3 import time
      4 
      5 
      6 def main():
      7     """
      8     redis-cli -h 127.0.0.1 -a test321
      9     """
     10     redis_host = "127.0.0.1"
     11     redis_password = "test321"
     12     redis_cli = redis.StrictRedis(host=redis_host, password=redis_password)
     13     try:
     14         key = "TEST_KEY_1484"
     15         # string
     16         print redis_cli.delete(key)
     17         print redis_cli.set(key, "hello")
     18         print redis_cli.get(key)
     19         print redis_cli.append(key, "world")
     20         print redis_cli.get(key)
     21         print redis_cli.strlen(key)
     22         # timeout
     23         print redis_cli.delete(key)
     24         print redis_cli.setex(key, 10, "hello")
     25         print redis_cli.get(key)
     26         print redis_cli.ttl(key)
     27         # time.sleep(10)
     28         print redis_cli.get(key)
     29         # not set
     30         print redis_cli.delete(key)
     31         print redis_cli.setnx(key, "hello") # 设置key为hello
     32         print redis_cli.setnx(key, "world") # 设置key为world,key已经有值,设置失败
     33         print redis_cli.get(key) # 只能得到第一次设置的值
     34         print redis_cli.setrange(key, 20, "111111") # 从20位置开始替换,若索引值超过原值长度,则补0
     35         print redis_cli.getrange(key, 1, -1) # 获取1到-1(最后)的子串
     36         print redis_cli.mset({"key1":1, "key2":2, "key3":3})
     37         print redis_cli.mget("key1", "key2", "key3")
     38         print redis_cli.msetnx({"key3":7, "key4":8, "key5":9}) # 已经有值的key会设置失败,从而导致整次设置失败
     39         print redis_cli.mget("key1", "key2", "key3", "key4", "key5")
     40 
     41         # integer
     42         print redis_cli.delete(key)
     43         print redis_cli.set(key, 1)
     44         print redis_cli.incr(key)  # 累加1
     45         print redis_cli.incr(key, 2)  # 累加2
     46         print redis_cli.incrby(key, 5) # 累加5
     47         print redis_cli.decr(key) # 累减1
     48         print redis_cli.decr(key, 3) # 累减3
     49         print redis_cli.getset(key, 0) #获取旧值,并获取新值,一次原子操作
     50         
     51         # list
     52         print redis_cli.delete(key) # 删除key
     53         print redis_cli.lpush(key, 1,2,3,4,5) # 从左添加元素,若key不存在添加key
     54         print redis_cli.lpushx(key, 6) # 从左添加元素,返回添加后元素个数,若key不存在不做任何操作,返回0, 只能添加一个元素
     55         print redis_cli.lpop(key) # 弹出left头部元素
     56         print redis_cli.llen(key) # 获取链表长度
     57         print redis_cli.lrange(key, 0, -1) # 取从位置0开始到位置-1(最后)结束的元素。
     58         print redis_cli.lrem(key, 1, 1) # 从头部(left)向尾部(right)变量链表,删除2个值等于a的元素,返回值为实际删除的数量。
     59         print redis_cli.lrem(key, 1, 1) # 从头部(left)向尾部(right)变量链表,删除2个值等于a的元素,返回值为实际删除的数量。
     60         print redis_cli.lset(key, 1, 2) # 将左起索引值为1的元素值设置为新值2。
     61         print redis_cli.lindex(key, 1) # 查看左起索引值为1的元素值
     62         print redis_cli.ltrim(key, 0, 2) # 保留左起索引值0到2之间的3个元素,注意第0个和第2个元素均被保留。
     63         ele1 = redis_cli.lindex(key, 1) # 获取左起索引值为1的元素值
     64         print redis_cli.linsert(key, "after", ele1, 88) # 在1号元素后插入元素88
     65         print redis_cli.lrange(key, 0, -1)
     66         print redis_cli.linsert(key, "before", ele1, 99) # 在1号元素前插入元素99
     67         print redis_cli.lrange(key, 0, -1)
     68         # r
     69         print redis_cli.delete(key)
     70         print redis_cli.rpush(key, 1,2,3,4,5)
     71         print redis_cli.lrange(key, 0, -1)
     72         print redis_cli.rpushx(key, 6)
     73         print redis_cli.lrange(key, 0, -1)
     74         print redis_cli.rpop(key) # 从最右po出元素
     75         print redis_cli.lrange(key, 0, -1)
     76         newkey = key+"new"
     77         print redis_cli.lpush(key, 1,1)
     78         print redis_cli.rpoplpush(key, newkey) # 从key尾部po出元素到newkey头部
     79         print redis_cli.lrange(key, 0, -1)
     80         print redis_cli.lrange(newkey, 0, -1)
     81 
     82         # set
     83         print redis_cli.delete(key)
     84         print redis_cli.sadd(key, 1,2,3,4,5) # 添加、设置成员
     85         print redis_cli.smembers(key) # 获取成员
     86         print redis_cli.scard(key) # 获取成员数量
     87         print redis_cli.sismember(key, 4) # 判断是否包含该成员
     88         print redis_cli.srandmember(key) # 随机获取一个成员,成员依然在Set中存在
     89         print redis_cli.smembers(key) # 查看成员
     90         print redis_cli.spop(key) # 从尾部弹出一个元素,由于是Set所以得到并不是之前插入的第一个或最后一个成员。
     91         print redis_cli.smembers(key) # 查看成员
     92         print redis_cli.srem(key, 1) # 删除一个成员
     93         print redis_cli.smembers(key) # 查看成员
     94         key1 = key+"B"
     95         print redis_cli.sadd(key1, 9,8,7)
     96         print redis_cli.smove(key, key1, 2) # 将2从key移到key1
     97         print redis_cli.smove(key, key1, 2) # 将2从key移到key1, 由于此时key中没有2,移动失败
     98         print redis_cli.smembers(key) # 查看成员
     99         print redis_cli.smembers(key1) # 查看成员
    100         # 与、或、非
    101         key2 = key+"C"
    102         print redis_cli.delete(key)
    103         print redis_cli.sadd(key, 1,2,3) # 添加、设置成员
    104         print redis_cli.sadd(key1, 1,4,5) # 添加、设置成员
    105         print redis_cli.sadd(key2, 3,6,9) # 添加、设置成员
    106         print redis_cli.sinter(key, key1, key2) # 取交集
    107         interkey = key+"inter"
    108         print redis_cli.sinterstore(interkey, key, key1, key2) # 取交集并存储
    109         print redis_cli.delete(interkey)
    110         print redis_cli.sunion(key, key1, key2) # 取并集
    111         unionkey = key+"unionkey"
    112         print redis_cli.sinterstore(unionkey, key, key1, key2) # 取并集并存储
    113         print redis_cli.delete(unionkey)
    114         print redis_cli.sdiff(key, key1, key2) # 取非,key和key1相比,再用这个结果继续和key2进行差异比较
    115         notkey = key+"not"
    116         print redis_cli.sdiffstore(unionkey, key, key1, key2) # 取非,并存储
    117         print redis_cli.delete(notkey)
    118         # Sorted-Sets和Sets类型极为相似,各种操作命令也相似
    119         print redis_cli.delete(key)
    120         print redis_cli.zadd(key, 1, "one", 2, "two", three=3, four=4) # 添加、设置成员
    121         print redis_cli.zcard(key) # 获取成员数量
    122         print redis_cli.zcount(key, 1, 2) # 获取分数满足表达式1 <= score <= 2的成员的数量
    123         print redis_cli.zscan(key, match="*o*") # 查看匹配的成员
    124         print redis_cli.zrange(key, 0, -1) # 查看所有成员。
    125         print redis_cli.zrange(key, 0, -1, withscores=True) # WITHSCORES选项表示返回的结果中包含每个成员及其分数,否则只返回成员。
    126         print redis_cli.zrank(key, "one") # 查看成员one的索引位置
    127         # print redis_cli.zrem(key, "one", "two") # 删除成员one和two,返回实际删除成员的数量。
    128         print redis_cli.zscore(key, "one") # 获取成员one的分数。返回值是字符串形式。
    129         print redis_cli.zincrby(key, "one", 2) # 将成员one的分数增加2,并返回该成员更新后的分数。
    130         print redis_cli.zincrby(key, "one", -1) # 将成员one的分数增加-1,并返回该成员更新后的分数。
    131         print redis_cli.zrange(key, 0, -1, withscores=True)
    132         print redis_cli.zrangebyscore(key, 1, 3, start=1, num=2, withscores=True)  # 获取分数满足表达式1 <= score <= 3的成员。
    133         print redis_cli.zrangebyscore(key, 1, 3, 1, 2, True)  # 获取分数满足表达式1<= score<= 3的成员。从1开始取2个,同时返回分数
    134         # dict
    135         print redis_cli.delete(key)
    136     except Exception as e:
    137         print e.message
    138     finally:
    139         print redis_cli.delete(key)
    140     return None
    141 
    142 
    143 if __name__ == "__main__":
    144     main()

     github:https://github.com/luohuaizhi/test/blob/master/testRedisData.py

  • 相关阅读:
    typescript 装饰器
    typescript 中的模块
    深入理解typeScript中的泛型类
    泛型 泛型类
    vue跨域
    我喜欢的网站
    vuex
    路由导航守卫
    最多显示两行
    git命令
  • 原文地址:https://www.cnblogs.com/huaizhi/p/8418336.html
Copyright © 2020-2023  润新知