redis的python客户端demo代码,redispythondemo,Redis服务器的所有数


Redis服务器的所有数据都是基于内存的,不同于memcached,Redis可以实现

存储数据到磁盘,方便断电重启和提升可靠性 保存旧数据 提供多种数据结构,不限于简单字符串

在ubuntu上安装Redis可以参考我的另一篇博客Ubuntu安装redis的两种方法。

python3环境中安装redis驱动

pip3 install redis

导入redis模块

import redisimport timeconn = redis.Redis('127.0.0.1', 6379)  # 本机安装,ip为本地地址

Redis字符串使用

conn.set('secret', 'test_1')print(conn.get('secret'))# conn.keys(self, pattern) 可以列出所有的键print(conn.keys('*'))  # 输出 [b'secret', b'hello', b'name', b'foo']# setnx()方法只有当键不存在的时候才设定值conn.setnx('secret', 'test_2')# 使用setnx对已存在的键设值无效print(conn.get('secret'))    # 输出 test_1# getset返回旧的值,同时赋新值print(conn.getset('secret', 'test_3'))# getrange()得到子串, offset:0代表开始,-1代表结束(注意,结束代表最后一个字符的后一位)print(conn.getrange('secret', -6, -1))   # 输出 test_3# 从偏移处开始替换子串print(conn.setrange('secret', 0, 'ICKY'))# mset设值多个键值conn.mset({'pie':'cherry','cordial':'sherry'})# mget获取多个键的值conn.mget(['pie', 'cordial'])   # 输出['cherry','sherry']# 删除conn.delete('pie')# incr()或incrbyfloat()增加值,函数decr()减少值# 不存在 decrbyfloat()可以用增加负数代替 incrbyfloat('fever', -2.0)print(conn.incr('carats', 10))

Redis列表

# redis的列表只能包含字符串conn.lpush('zoo', 'bear')conn.lpush('zoo', 'alligator','duck')# linsert在一个值得前或后面插入conn.linsert('zoo', 'before', 'bear', 'beaver')conn.linsert('zoo', 'after', 'bear', 'cassowary')# lset()在偏移量处插入conn.lset('zoo', 2,'marmoset')# rpush()在结尾处插入conn.rpush('zoo','yak')#lindex()给定偏移量处的值conn.lindex('zoo', 3)# lrange()取给定偏移量范围的所有值conn.lrange('zoo', 0, 2)# ltrim()保留列表中给定范围的值conn.ltrim('zoo', 1, 4)# 使用了lrange()得到一定范围的值conn.lrange('zoo', 0, -1)  # 0~-1代表全部

Redis哈希表

# Redis的哈希表类似于字典,但它仅能包含字符串,不能嵌套conn.hmset('song', {'do':'a deer', 're':'about a deer'})# 使用哈希表设置一个单一字段值conn.hset('song', 'mi', 'a note to follow me')conn.hget('song', 'mi')# 获取多个字段值conn.hmget('song', 're', 'do')# 取所有字段的键conn.hkeys('song')# 取所有字段的值conn.hvals('song')# 字段总数conn.hlen('song')# 所有字段的键和值conn.hgetall('song')

Redis集合(set)

conn.sadd('zoo', 'duck', 'goat', 'turkey')# 集合内数量conn.scard('zoo')# 删除conn.srem('zoo', 'turkey')# 集合间操作# 集合交集conn.sinter('zoo', 'zoo2')# 获取集合交集并存储到新集合flow中conn.sinterstore('flow','zoo','zoo2')# 集合并集conn.sunion('zoo', 'zoo2')conn.sunionstore('flow','zoo','zoo2')# 集合差集conn.sdiff('zoo', 'zoo2')conn.sdiffstore('flow', 'zoo', 'zoo2')

Redis有序集合 (sorted set)

# 有序集合用途1)排行榜 2)二级索引 3)时间序列(把时间戳作为分数)now = time.time()# tom登录conn.zadd('logins', 'tom', now)# 五分钟后,jerry登录conn.zadd('logins', 'jerry', now+(5*60))# 两小时后,marry登录conn.zadd('logins', 'marry', now+(2*60*60))# jerry登录次序conn.zrank('logins', 'jerry')  # 输出 2# jerry登录时间conn.zscore('logins', 'jerry')# 按照顺序查看每一位访客conn.zrange('logins', 0, -1)# 按照顺序查看每一位访客,并附上时间conn.zrange('logins', 0, -1, withscores=True)

评论关闭