
目录
- 前言
- Redis GUI 工具
- Redis 遇上 Docker
- Redis string
- Redis hash
- Redis list
- Redis set
- Redis zset
- 后记
前言
前面一篇文章介绍了 MongoDB 的库,我把 MySQL 放在了最后面,这篇文章继续介绍 Redis 的操作。Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。接下来会简单介绍一下,Python 与 Redis 的化学反应。

Redis GUI 工具
首先介绍一款 Redis 的 GUI 工具 Medis,初学 Redis 用这个来查看数据真的很爽。可以即时看到数据的增删改查,不用操作命令行来查看。

主界面

操作界面图
Redis 遇上 Docker
能跟 Docker 扯上关系的,我都会粗略地说一下。这里主要贴一贴配置代码,docker-compose 代码如下。
复制代码
1
2
3
4
5
6
7
8
9version: '3' services: redis_container: image: redis command: redis-server --requirepass yourpassword # 配置 Redis 密码 ports: - "6378:6379" # 映射端口 volumes: - /your/path/data:/data
启动命令
复制代码
1docker-compose up -d
Redis string
install
复制代码
1pip install redis
连接
复制代码
1
2
3
4
5
6
7
8
9
10
11# 普通连接 r = redis.StrictRedis(host='localhost', port=6379, db=0) r = redis.StrictRedis(host='localhost', port=6379, password="your password", db=0) # 连接池 """ redis-py 使用 connection pool 来管理对一个 redis server 的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池,这样就可以实现多个 Redis 实例共享一个连接池 """ # host 是 redis 服务 ip,默认端口是6379 pool = redis.ConnectionPool(host='localhost', port=6379,decode_responses=True) r = redis.Redis(connection_pool=pool)
增加
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20set(name, value, ex=None, px=None, nx=False, xx=False) 在Redis中设置值,默认,不存在则创建,存在则修改 参数: ex,过期时间(秒) px,过期时间(毫秒) nx,如果设置为True,则只有name不存在时,当前set操作才执行 xx,如果设置为True,则只有name存在时,当前set操作才执行 # 设置过期时间为 1 秒 r.set('foo', 'zone', ex=1) # 效果同上 r.setex('foo', 'zone', 1) # 效果同上 r.psetex('foo', 1000, 'zone') print(r.get('foo')) # 休眠两秒后,再打印输出 time.sleep(2) print(r.get('foo'))
查找
复制代码
1
2
3
4
5
6
7
8get(key) 普通查找 print(r.get('foo')) mget(keys, *args) 批量查找 # 批量获取 print(r.mget("k1", "k2")) # 一次取出多个键对应的值 print(r.mget("k1"))
获取子序列
复制代码
1
2
3
4
5
6
7
8
9
10
11getrange(key, start, end) 获取子序列(根据字节获取,非字符) 参数: name,Redis 的 name start,起始位置(字节) end,结束位置(字节) # 一个汉字3个字节 1个字母一个字节 r.set("name", "zonezone") print(r.getrange('name', 0, 3)) # 获取所有字节 print(r.getrange('name', 0, -1))

获取结果
修改
原始值 zonezone ,修改后变为 zone is a boy
复制代码
1
2
3
4
5
6
7
8setrange(name, offset, value) 修改字符串内容,从指定字符串索引开始向后替换(新值太长时,则向后添加) 参数: offset,字符串的索引,字节(一个汉字三个字节) value,要设置的值 r.set("name", "zonezone") r.setrange("name", 4, " is a boy") print(r.get("name"))

修字符串成功
返回相应 key 的字符串长度
复制代码
1
2r.set("name", "zonezone") print(r.strlen("name"))
自增 name 对应的值(int)
复制代码
1
2
3
4
5
6
7
8
9incr(self, name, amount=1) 自增 name对应的值,当name不存在时,则创建name=amount,否则,则自增。 参数: name,Redis的name amount,自增数(必须是整数) r.set("age", 123) print(r.get("age")) r.incr("age", amount=1) print(r.get("age"))

自增成功
自增 name 对应的值(float)
复制代码
1
2
3
4
5
6
7
8
9incrbyfloat(self, name, amount=1.0) 自增 name对应的值,当name不存在时,则创建name=amount,否则,则自增。 参数: name,Redis的name amount,自增数(浮点型) r.set("age", 123.0) print(r.get("age")) r.incrbyfloat("age", amount=0.2) print(r.get("age"))

自减 name 对应的值
复制代码
1
2
3r.set("age", 123) r.decr("age", amount=1) # 递减1 print(r.mget("foo1", "foo4"))
追加内容
复制代码
1
2
3
4
5append(key, value) 在redis name对应的值后面追加内容 参数: key, redis的name value, 要追加的字符串
最后
以上就是义气店员最近收集整理的关于redis 自增_Python 数据库骚操作 -- Redis的全部内容,更多相关redis内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复