python操作redis学习笔记
来源:互联网 发布:服务器网站域名 编辑:程序博客网 时间:2024/06/05 03:40
python操作redis学习笔记
Redis服务器的所有数据都是基于内存的,不同于memcached,Redis可以实现
1. 存储数据到磁盘,方便断电重启和提升可靠性
2. 保存旧数据
3. 提供多种数据结构,不限于简单字符串
在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)
0 0
- python操作redis学习笔记
- 学习笔记:Python操作Redis
- Redis学习笔记-Jedis操作Redis
- [Redis学习笔记]-Spring 操作Redis
- 【学习笔记】C++操作redis库
- redis学习笔记二(常规操作)
- MongoDB 学习笔记(python操作)
- Python学习笔记--文件操作
- MongoDB 学习笔记(python操作)
- Python学习笔记-数据库操作
- MongoDB 学习笔记(python操作)
- Python学习笔记<文件操作>
- python学习笔记--文件操作
- python位操作学习笔记
- python文件操作学习笔记
- python 学习笔记-操作mysql
- Python学习笔记:文件操作
- python学习笔记-文件操作
- 查找算法
- Android知识库
- 第一次分享
- mpi 程序打头
- 微信公众号开发,原来这么简单?[java框架]
- python操作redis学习笔记
- 225. Implement Stack using Queues**
- 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。
- QT在构造函数中关闭窗口
- 形状贴图
- Java 加解密技术之SHA
- 一体化架构(Monolithic Architecure)
- oracle数据库【表复制】insert into select from跟create table as select * from 两种表复制语句区别
- python爬取妹子图片1