概述
目录
- 前言
- 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 代码如下。
version: '3'
services:
redis_container:
image: redis
command: redis-server --requirepass yourpassword # 配置 Redis 密码
ports:
- "6378:6379" # 映射端口
volumes:
- /your/path/data:/data
启动命令
docker-compose up -d
Redis string
install
pip install redis
连接
# 普通连接
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)
增加
set(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'))
查找
get(key)
普通查找
print(r.get('foo'))
mget(keys, *args)
批量查找
# 批量获取
print(r.mget("k1", "k2")) # 一次取出多个键对应的值
print(r.mget("k1"))
获取子序列
getrange(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
setrange(name, offset, value)
修改字符串内容,从指定字符串索引开始向后替换(新值太长时,则向后添加)
参数:
offset,字符串的索引,字节(一个汉字三个字节)
value,要设置的值
r.set("name", "zonezone")
r.setrange("name", 4, " is a boy")
print(r.get("name"))
修字符串成功
返回相应 key 的字符串长度
r.set("name", "zonezone")
print(r.strlen("name"))
自增 name 对应的值(int)
incr(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)
incrbyfloat(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 对应的值
r.set("age", 123)
r.decr("age", amount=1) # 递减1
print(r.mget("foo1", "foo4"))
追加内容
append(key, value)
在redis name对应的值后面追加内容
参数:
key, redis的name
value, 要追加的字符串
最后
以上就是义气店员为你收集整理的redis 自增_Python 数据库骚操作 -- Redis的全部内容,希望文章能够帮你解决redis 自增_Python 数据库骚操作 -- Redis所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复