redis介绍和安装
安装
- 最新是7,公司里5、6比较多
- 开源软件,免费的,他们不支持win
- 微软官方:基于源码修改
⇢
- 第三方:
https://github.com/tporadowski/redis/releases/
步骤
启动,连接
redis普通连接和连接池
普通连接
from redis import Redis
coon = Redis(host='localhost', port=6379, db=0, decode_responses=True)
res= coon.get('name')
print(res)
coon.close()
连接池
import redis
POOL = redis.ConnectionPool(host='localhost', port=6379, max_connections=50)
from threading import Thread
def task():
coon = redis.Redis(connection_pool=POOL)
print(coon.get('name'))
coon.close()
if __name__ == '__main__':
for i in range(5):
t = Thread(target=task)
t.start()
redis字符串类型
- 新增或修改:
conn.set(key, value, ex=None, px=None, nx=False, xx=False)
- sex中nx为Ture:
conn.setnx(key, value)
- sex中ex传值:
conn.setex(name, value, time)
- sex中px传值:
conn.psetex(name, time_ms, value)
- 批量新增或修改:
conn.mset(*args, **kwargs)
- 获取值:
conn.get(key)
- 批量获取值:
conn.mget(keys, *args)
- 新增或修改值并返回之前的值:
conn.getset(key, value)
- 获取start到end的字符:
conn.getrange(key, start, end)
- 从offset位置开始修改成value:
conn.setrange(key, offset, value)
conn.setbit(key, offset, value)
conn.getbit(key, offset)
conn.bitcount(key, start=None, end=None)
conn.bitop(operation, dest, *keys)
- 统计长度:
conn.strlen(key)
- 自加整数:
conn.incr(key, amount=1)
key值为数字,amount默认1,执行一遍,值增加amount - 自加浮点型:
conn.incrbyfloat(key, amount=1.0)
- 自减整数:
conn.decr(self, key, amount=1)
- 自减浮点型:
conn.append(key, value)
redis hash类型
hash 类型,就是咱们python中的字典类型, 数据结构:数据的组织形式 底层存储 数组
⇢
⇢ 根据key值使用hash函数得到结构,存到数组中
字典的key值必须可hash
字典的key值必须是不可变数据类型
hash 类型无序,跟放的先后顺序无关的
python 的字典是 有序的 字典+列表
- 新增或修改:
conn.hset(name, key, value)
- 批量新增或修改:
conn.hmset(name, mapping)
conn.hmset('userinfo2',{'name':'pyy',"age":33}) conn.hset('userinfo3',mapping={'name':'xxx',"age":33})
- 获取值:
conn.hget(name,key)
- 批量获取值:
conn.hmget(name, keys, *args)
- 取出hash中里的所有数据(k:v):
conn.hgetall(name)
- 获取hash中数据数量:
conn.hlen(name)
- 以列表获取所有key:
conn.hkeys(name)
- 以列表获取所有value:
conn.hvals(name)
- 验证hash中有无key值,返回布尔值:
conn.hexists(name, key)
- 批量删除值:
conn.hdel(name,*keys)
conn.hdel('userinfo', 'age', 'hobby')
- 将key值自增:
conn.hincrby(name, key, amount=1)
- 将key值自增(浮点型):
conn.hincrbyfloat(name, key, amount=1.0)
- 从name中cursor位置取出count个值:
conn.hscan(name, cursor=0, match=None, count=None)
- 一次性全取出,成迭代器:
conn.hscan_iter(name, match=None, count=None)
redis列表类型
进行操作列表类型的表
- 从列表最左边数据新增:
conn.lpush(name, values)
- 从列表最右边数据新增:
conn.rpush(name, values)
- 列表name存在时,从左边新增:
conn.lpushx(name, value)
- 列表name存在时,从右边新增:
conn.rpushx(name, value)
- 获取列表长度:
conn.llen(name)
- 以refvalue为参照物添加值:
conn.linsert(name, where, refvalue, value))
- 修改index
conn.lset(name, index, value)
- 从左侧删count个value值:
conn.lrem(name, count, value)
- 从列表左侧删除并弹出:
conn.lpop(name)
- 从列表右侧删除并弹出:
conn.rpop(name)
- 取出index位置的值:
conn.lindex(name, index)
- 从start位置到end位置取出:
conn.lrange(name, start, end)
- 留下从start位置到end位置,其他全部删除:
conn.ltrim(name, start, end)
- 从列表src右侧弹出添加到dst左侧:
conn.rpoplpush(src, dst)
- 从左侧阻塞式弹出:
conn.blpop(keys, timeout)
- 从左侧阻塞式删除弹出:
conn.brpop(keys, timeout)
, - 阻塞式从列表src右侧弹出添加到dst左侧:
conn.brpoplpush(src, dst, timeout=0)
原文地址:https://blog.csdn.net/qq_44779250/article/details/134381693
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_4289.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。