Redis (待完善)
字符串操作
-mysql,oracle:关系型数据库 -redis,mongodb:非关系型数据库/nosql -redis存储在内存中 -mongodb存储在硬盘上 # redis 是一个key-value存储系统 redis-cli 启动redis Redis作用 - 缓存 - session数据 -对速度要求比较高的数据的存储 -做消息队列 # 包含5大数据类型 - strig 字符串 k1:'123' - list 列表/数组 k2:[1,2,3,4] - set 集合 k3:{1,2,3,4} - zset 字典/哈希表 k4:{name:alan,age:12} - hash 有序集合 k5:{('lqz',18),('egon',33)} # redis和Memcached区别: - Redis支持5大数据类型 Memcached仅支持字符串 - Redis支持持久化, Memcached不支持持久化 - Redis为单线程, 单进程,特点是速度快 # python使用Redis 首先安装redis pip3 install redis/ pychram 安装 使用: import redis # 拿到redis链接,类似于mysql conn = redis.Redis(host='127.0.0.1', port=6379) # 获取数据 name = conn.get('name', 'age') redis字符串操作 get 获取数据 set 设置数据 mget 批量获取 mset 批量设置 incr 自增 decr 自减 append 追加 # redis中存的都是byte格式 # name, # value, # ex=None, px=None, ex 超时时间(秒) px 过期时间(毫秒) # nx=False, nx,如果设置为True,则只有name不存在时,当前set操作才执行, 值存在,就修改不了,执行没效果 # xx=False xx,如果设置为True,则只有name存在时,当前set操作才执行,值存在才能修改,值不存在,不会设置新值 # setnx(name, value) 设置值,只有name不存在时,执行设置操作(添加),如果存在,不会修改 # setex(name, time, value) time,过期时间(数字秒 或 timedelta对象) # conn.psetex(name, time_ms, value) # 批量设置值mset conn.set('name', 'alan') conn.set('name', 'egon', nx=True) conn.set('name', 'alan', xx=True) conn.get('name') conn.setex('k1',5,'k1') conn.mset({'name': 'alan', 'age': 18, 'sex': 'male'}) print(conn.mget(['name', 'age', 'sex'])) print(conn.getset('name', 'alex')) # 获取子序列(根据字节获取,非字符) name: redis的name, start起始位置, end结束位置 print(conn.getrange('name', 0, 3)) # 修改字符串内容,从指定字符串索引开始向后替换(新值太长时,则向后添加) offset,字符串的索引,字节 value,要设置的值 print(conn.setrange('name', 2, 'en')) # 返回name对应值的字节长度(一个汉字3个字节) print(conn.strlen('name')) # 自增 age对应的值,当age不存在时,则创建age=amount,否则,则自增。 amount必须为整数 conn.incr('age', amount=1) # 自增 name对应的值,当name不存在时,则创建name=amount,否则,则自增。 浮点型 conn.incrbyfloat('name', amount=1.0) # 自减 age对应的值,当age不存在时,则创建age=amount,否则,则自减。 conn.decr('age', amount=1) # 在redis name对应的值后面追加内容 conn.append('name', '111111') redis 连接池 # 新建一个模块 import redis POOL = redis.ConnectionPool(host='127.0.0.1', port=6379, max_connections=1000) # 使用连接池 from conn_pool import POOL conn = redis.Redis(connections_pool=POOL)
学习,学习,学习!
学习是为了更好的未来,不要让别人瞧不起你,加油!!!