redis介绍安装

  1. redis 什么?
  2. redis特点:https://www.cnblogs.com/liuqingzheng/articles/9833534.html
  3. redis为什么这快?

安装

  1. 最新是7,公司里5、6比较
  2. 开源软件,免费的,他们不支持win
  3. 微软官方:基于源码修改

    dashrightarrow

    编译可执行文件

  4. 第三方https://github.com/tporadowski/redis/releases/
步骤
  1. win下载安装包,一路下一步
  2. mac官网下载解压即可

winmac:两个可执行文件

redisserver :等同于 mysqld
reidis-cli :等同于mysql
启动连接
  1. 启动方式

  2. 连接
    1.本地:redis-cli
    2.远端:redis-cli -h 地址 -p 端口(默认端口6379)

  3. 图形化客户端

  4. 放值
    使用图形化客户端放入值

  5. 取值
    cmd中连接Redis后:get key

redis普通连接和连接池

  1. python 代码作为客户端—》连接

  2. 安装模块pip install 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实例化得到对象

  1. 新增或修改:conn.set(key, value, ex=None, px=None, nx=False, xx=False)
  2. sex中nx为Tureconn.setnx(key, value)
  3. sex中ex传值:conn.setex(name, value, time)
  4. sex中px传值:conn.psetex(name, time_ms, value)
  5. 批量新增或修改:conn.mset(*args, **kwargs)
  6. 获取值:conn.get(key)
  7. 批量获取值:conn.mget(keys, *args)
  8. 新增或修改值并返回之前的值:conn.getset(key, value)
  9. 获取startend字符conn.getrange(key, start, end)
  10. 从offset位置开始修改成value:conn.setrange(key, offset, value)
  11. conn.setbit(key, offset, value)
  12. conn.getbit(key, offset)
  13. conn.bitcount(key, start=None, end=None)
  14. conn.bitop(operation, dest, *keys)
  15. 统计长度:conn.strlen(key)
  16. 自加整数conn.incr(key, amount=1)
    key值为数字,amount默认1,执行一遍,值增加amount
  17. 自加浮点型:conn.incrbyfloat(key, amount=1.0)
  18. 自减整数conn.decr(self, key, amount=1)
  19. 自减浮点型:conn.append(key, value)

redis hash类型

hash 类型,就是咱们python中的字典类型, 数据结构数据的组织形式 底层存储 数组

dashrightarrow

根据key值使用hash函数得到结构,存到数组
字典的key值必须可hash
字典的key值必须是不可变数据类型
hash 类型无序,跟放的先后顺序无关的
python 的字典是 有序的 字典+列表

  1. 新增或修改:conn.hset(name, key, value)
  2. 批量新增或修改:conn.hmset(name, mapping)
    conn.hmset('userinfo2',{'name':'pyy',"age":33})
    conn.hset('userinfo3',mapping={'name':'xxx',"age":33})
    
  3. 获取值:conn.hget(name,key)
  4. 批量获取值:conn.hmget(name, keys, *args)
  5. 取出hash中里的所有数据(k:v):conn.hgetall(name)
  6. 获取hash中数据数量:conn.hlen(name)
  7. 以列表获取所有key:conn.hkeys(name)
  8. 以列表获取所有value:conn.hvals(name)
  9. 验证hash中有无key值,返回布尔值:conn.hexists(name, key)
  10. 批量删除值:conn.hdel(name,*keys)
    conn.hdel('userinfo', 'age', 'hobby')
    
  11. 将key值自增:conn.hincrby(name, key, amount=1)
  12. 将key值自增(浮点型):conn.hincrbyfloat(name, key, amount=1.0)
  13. 从name中cursor位置取出count个值:conn.hscan(name, cursor=0, match=None, count=None)
  14. 一次性全取出,成迭代器:conn.hscan_iter(name, match=None, count=None)

redis列表类型

进行操作列表类型的表

  1. 从列表最左边数据新增:conn.lpush(name, values)
  2. 从列表最右边数据新增:conn.rpush(name, values)
  3. 列表name存在时,从左边新增:conn.lpushx(name, value)
  4. 列表name存在时,从右边新增:conn.rpushx(name, value)
  5. 获取列表长度:conn.llen(name)
  6. refvalue为参照物添加值:conn.linsert(name, where, refvalue, value))
  7. 修改indexconn.lset(name, index, value)
  8. 从左侧删count个value值:conn.lrem(name, count, value)
  9. 从列表左侧删除并弹出:conn.lpop(name)
  10. 从列表右侧删除并弹出:conn.rpop(name)
  11. 取出index位置的值:conn.lindex(name, index)
  12. start位置到end位置取出:conn.lrange(name, start, end)
  13. 留下从start位置到end位置,其他全部删除conn.ltrim(name, start, end)
  14. 从列表src右侧弹出添加dst左侧:conn.rpoplpush(src, dst)
  15. 从左侧阻塞式弹出:conn.blpop(keys, timeout)
  16. 从左侧阻塞式删除弹出:conn.brpop(keys, timeout)
  17. 阻塞式从列表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进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注