【python第三方】09learn_redis操作

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:albert time:2019/2/11

# 数据缓存系统:
# 1:mongodb:是直接持久化,直接存储于硬盘的缓存系统
# 2:redis: 半持久化,存储于内存和硬盘
# 3:memcache:数据只能存储在内存里的缓存系统


import redis


# 连接方式:redis提供了2个类
# 1:StrictRedis:实现大部分官方的命令
# 2:Redis:是StrictRedis的子类,用于向后兼容旧版的redis。

# 一、连接Redis数据库
# ①普通连接
# rs = redis.Redis(host='*',port=6379,password='*******',socket_timeout=1000)
# rs.set('name','jack')
# print(rs.get('name').decode())

# ②连接池
# pool = redis.ConnectionPool(host='*',port=6379,password='******',db=1)
# r = redis.Redis(connection_pool=pool)
# r.set('name','jack')
# print(r.hgetall('info'))

# 二、String类型存取

# r.set('name','jack',ex=None,px=None,nx=False,xx=False)
# ex,过期时间(秒)
# px,过期时间(毫秒)
# nx,如果设置为True,则只有key不存在时,当前set操作才执行,同#setnx(key, value)
# xx,如果设置为True,则只有key存在时,当前set操作才执行

# 设置过期时间秒级
# r.setex('name','Tom',1)

# 设置过期时间毫秒级
# r.psetex('name',10,'Ben')

# 批量设置值,两种传值方式
# r.mset({'name1':1,'name2':2})

# r.mset(name1=11,name2=22,name3=33)

# 获取值和批量获取值
# print(r.get('name'))

# print(r.mget('name','name1','name2','name3'))

# 获取某一key的值得长度
# print(r.strlen('name'))

# 追加内容
# r.append('name',' is boy!')

# 三、Hash类型:一个name对应一个dic字典来存储。

# 设置hash的值
# r.hset('hname','hkey','hvalue')
# r.hset('hname','hkey1','hvalue1')

# 获取hash的值
# print(r.hget('hname','hkey'))

# print(r.hgetall('hname'))

# 批量设置
# r.hmset('hname',{'name1':1,'name2':2,'name3':3})

# print(r.hmget('hname','name1','name2','name3'))

# 获取hash键值对的个数
# print(r.hlen('hname'))

# 获取hash键值对中所有keys
# print(r.hkeys('hname'))

# 获取hash键值对中所有values
# print(r.hvals('hname'))

# 查看hash键值对中是否存在指定的key
# print(r.hexists('hname','name1'))
# print(r.hexists('hname','name5'))

# 删除hash键值对中的key
# print(r.hdel('hname','name1','name5'))

# 四、list类型:一个name对应一个列表存储。
# 从左边添加
# r.lpush('list',1,2,3,4,5,6,7)

# 从右边添加
# r.rpush('list',8,9,10)

# 获取列表长度
# print(r.llen('list'))

# 向列表中的第一个1后插入字母A,如果列表中不存在1,则不会插入
# r.linsert('list','AFTER',1,'A')

# 对某一位置重新赋值
# r.lset('list',0,'A')

# 删除列表中指定的值
# r.lrem('list','A')

# 删除一个元素
# r.lpop('list')

# 根据索引获取元素
# print(r.lindex('list',3))

# 五、set类型:集合是不允许重复的列表
# 向集合中添加元素
# r.sadd('dict','a')
# r.sadd('dict','a','b')
# r.sadd('dict2','d','a')

# 统计集合元素个数
# print(r.scard('dict'))

# 列出集合所有元素,已集合的形式
# print(r.smembers('dict'))

# 对比第一个集合的元素是否在其他集合中,不在则返回
# print(r.sdiff('dict','dict2'))

# 判断元素是否在集合中
# print(r.sismember('dict','d'))

# 将一个集合中的元素移动到另外一个集合
# r.smove('dict','dict2','b')

# 从集合右侧移除一个元素,并返回该元素
# r.spop('dict2')

# 六、其他常用操作

# 根据name删除数据
# r.delete('name1','name2')

# 判断是否存在name3
# print(r.exists('name3'))

# 根据[ * ? ]等通配符匹配获取redis的name
# print(r.keys('*name*'))

# 给指定的name设置过期时间
# r.expire('name3',100)

# 重命名
# r.rename('name3','name33')

# 将指定的name移动到另一db下
# r.move('name33',db=3)

# 随机获取redis中的name,并判断类型
# print(r.type(r.randomkey()))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值