注册公司域名后如何做网站,wordpress实现文章目录,菏泽网站建设方案,企业网站建设中有哪几个重要点文章目录 redis介绍和安装安装步骤启动#xff0c;连接 redis普通连接和连接池普通连接连接池 redis字符串类型redis hash类型redis列表类型 redis介绍和安装
redis 什么#xff1f; 数据库就是个存数据的地方#xff1a;只是不同数据库数据组织#xff0c;存放形式不一样… 文章目录 redis介绍和安装安装步骤启动连接 redis普通连接和连接池普通连接连接池 redis字符串类型redis hash类型redis列表类型 redis介绍和安装
redis 什么 数据库就是个存数据的地方只是不同数据库数据组织存放形式不一样关系型数据库mysql、oracle、sqlserver、postgrasql非关系型数据(no sql)redismongodbclickhouseinfludbelasticsearchhadoop 没有sql没有sql语句not olny sql 不仅仅是sql redis一款纯内存存储的非关系型数据库数据都在内存速度非常快 redis特点https://www.cnblogs.com/liuqingzheng/articles/9833534.html redis是一个key-value存储系统数据类型丰富支持5大数据类型字符串列表hash(字典),集合有序集合纯内存操作可以持久化能都把内存数据保存到硬盘上永久存储 redis为什么这快? 纯内存减少io使用了 io多路复用的 epoll 网络模型数据操作是单线程避免了线程间切换 多个客户端同时操作不会存在并发安全问题
安装
最新是7公司里5、6比较多开源软件免费的他们不支持win epoll模型不支持win 微软官方基于源码修改 ⇢ \dashrightarrow ⇢ 编译成可执行文件第三方https://github.com/tporadowski/redis/releases/
步骤
win下载安装包一路下一步 安装目录在环境变量中任意路径敲 redis-server reidis-cli 都能找到redis做成了服务以后通过服务启动即可 mac官网下载解压即可 winmac两个可执行文件 redis-server 等同于 mysqld reidis-cli 等同于mysql 启动连接 启动方式 使用服务启动使用命令启动redis-server 连接 1.本地redis-cli 2.远端redis-cli -h 地址 -p 端口默认端口6379 图形化客户端 resp: https://github.com/lework/RedisDesktopManager-Windows/releasesNavicate 连接上发现有16个库 放值 使用图形化客户端放入值 取值 cmd中连接Redis后get key
redis普通连接和连接池 python 代码作为客户端—》连接 安装模块pip install redis
普通连接
from redis import Rediscoon Redis(hostlocalhost, port6379, db0, decode_responsesTrue)res coon.get(name)print(res)coon.close()连接池
import redis
POOL redis.ConnectionPool(hostlocalhost, port6379, max_connections50)from threading import Threaddef task():coon redis.Redis(connection_poolPOOL)print(coon.get(name))coon.close()if __name__ __main__:for i in range(5):t Thread(targettask)t.start()redis字符串类型
conn为实例化得到对象
新增或修改conn.set(key, value, exNone, pxNone, nxFalse, xxFalse) ex过期时间秒px过期时间毫秒nx如果设置为True则只有key不存在时当前set操作才执行,值存在就修改不了执行没效果xx如果设置为True则只有key存在时当前set操作才执行值存在才能修改值不存在不会设置新值 sex中nx为Tureconn.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位置开始修改成valueconn.setrange(key, offset, value)conn.setbit(key, offset, value)conn.getbit(key, offset)conn.bitcount(key, startNone, endNone)conn.bitop(operation, dest, *keys)统计长度conn.strlen(key)自加整数conn.incr(key, amount1) key值为数字amount默认1执行一遍值增加amount自加浮点型conn.incrbyfloat(key, amount1.0)自减整数conn.decr(self, key, amount1)自减浮点型conn.append(key, value) redis hash类型
hash 类型就是咱们python中的字典类型 数据结构数据的组织形式 底层存储 数组 ⇢ \dashrightarrow ⇢ 根据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:vconn.hgetall(name)获取hash中数据数量conn.hlen(name)以列表获取所有keyconn.hkeys(name)以列表获取所有valueconn.hvals(name)验证hash中有无key值返回布尔值conn.hexists(name, key)批量删除值conn.hdel(name,*keys)conn.hdel(userinfo, age, hobby)将key值自增conn.hincrby(name, key, amount1)将key值自增(浮点型)conn.hincrbyfloat(name, key, amount1.0)从name中cursor位置取出count个值conn.hscan(name, cursor0, matchNone, countNone)一次性全取出成迭代器conn.hscan_iter(name, matchNone, countNone)
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)) 前wherebefore后whereafter 修改indexconn.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) 如果列表内没值timeout秒时间到返回None 从左侧阻塞式删除弹出conn.brpop(keys, timeout)阻塞式从列表src右侧弹出添加到dst左侧conn.brpoplpush(src, dst, timeout0)