python进阶12 Redis

一、概念

#redis是一种nosql(not only sql)数据库,他的数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,还提供了多个语言的API,操作比较方便#关系型数据库和非关系型数据库的区别
#关系型数据库:表和表之间存在的关系
#非关系型数据库:不存在表的这种概念,redis是键值对数据库,通过key查找value 所以key是唯一的;优点,速度快原因是将数据保存在内存中

  安装Redis

sudo apt-get update
sudo apt-get install redis-server

二、操作Redis

  1、启动Redis

redis-cli 

  2、Redis的数据类型

string #字符串
list #列表
hash #哈希:类似字典 key={"":"","":""},key->value,value值就是一个字典
set #集合
sorted sets #有序集合

三、操作string

  a、设置

set key valueset name which #设置一个which的名字,不能设置同一个,设置了会覆盖,默认设置的过期时间为永久

set name "which w" #如果名字有空格,需要用双引号括起来

  b、获取

get keyget name#获取时间

  c、设置过期时间

#分为两种情况:一种key已存在,另一种不存在
#已存在:
expire key secondsexpire name 20 #对已经存在的name设置过期时间为20秒#不存在:有两种可以选择
set key value ex seconds
setex key seconds valueset name which ex 10 #给一个不存在的name,建并设置过期时间10秒

  d、查看过期时间

ttl keyttl name  #查看name的过期时间 #-1表示永不过期    -2表示已经过期   -其他正数表示剩余过期时间

  e、追加

#针对key的名字
append key valueappend name love #对name追加love,是向后添加,加在最后面,返回的是字符长度

  f、设置多个

mset key value key value ...mset password 123 marry false #同时设置password为123,marry为false

  g、获取多个

mget key key key ...mget name password marry #同时获取name,password,narry的值

  h、查看类型

type key type name #查看name 的类型,返回string

  i、删除key

del keydel name #删除name

  j、查看所有的key

keys * 

  k、查看key是否存在

exists keyexists name #查看name是否存在,不存在的话返回0,存在的话返回1

  l、运算

#运算只对整型有效#自增1
incr key#自减1
decr key#任意加数字
incrby key increment  #increment表示数字#任意减数字
indrby key increment

四、List

  1、设置

lpush name value lpush l_list 1 2 3 4 5 #设置一个列表l_list 值为1 2 3 4 5 这是左添加,查询出来依次为5,4,3,2,1

rpush r_list 1 2 3 4 5 #射仪一个列表r_list 值为1 2 3 4 5 这是右添加,查询出来一次为1,2,3,4,5

  2、查询

lrange key start stop #start和结束表示索引

lrrange r_list 0 -1 #查看所有

  3、获取元素个数

llen key  llen r_list #查看列表r_list的元素个数

  4、查看位于某索引的元素

index key 1index r_list 1 #查看r_list索引1的元素

  5、删除

lpop key #删除左边第一个,返回被删除的值

rpop key #删除右边第一个,返回被删除的值#指定删除
lrem key count value
#count>0 从左往右删数量为count个value
#count<0 从右往左删数量为count个value
#count=0 删除所有的value#count大于实际数量,删除所有

五、hash

  1、设置

hset key field valuehset user username  which #设置一个hash,key为user value中的其中一个键值对为“username”:“which”

  2、获取

hget key fieldhget user username#获取user下面某个属性username的值

  3、设置多个

hmset key field value [field value] #[]表示可加可不加

  4、获取多个

hmget key field field #获取多个key下面field的值

  5、获取全部field value

hgetall key 

  6、获取所有的field

hkeys key

  7、获取所有的value

hvals key 

  8、获取field的个数

hlen key

  9、删除值

hdel key fieldhdel user username #删除user下的username的值

六、set

  1、设置

sadd key value [value]

  2、获取

smembers key #获取一个集合key的值

  3、删除

#分为指定删除和随机删除
#指定删除
srem key member #指定删除集合key内的元素menber,若不存在元素返回0,删除成功返回1#随机删除
spop  key #随机删除集合key中的一个值

  4、移动一个集合的值到另一个集合

smove oldkey newkey member #将oldkey集合内的元素menber移动到newkey集合中,相当于剪切

  5、判断集合中是否存在某个元素

sismember key value #判断key中是否存在value 0表示假,1表示真

  6、把 key1 key2的交集合并到newkey

sinterstore newkey key1 key2

  7、把 key1 key2的并集合并到newkey

sunionstore newkey key1 key2

  8、把 key1 key2的差集合并到newkey

sdiffstore newkey key1 key2

  9、获取集合个数

scard key

  10、随机返回一个menber

srandmember key

七、操作zset(有序集合)

  1、设置

zadd key score member#设置一个有序集合key中第score个元素menber 

zadd tmp_zset 1 a 2 b  #设置一个有序集合tmp_zset第1个元素为a,第二个元素为b

  2、获取

#分为正序和倒序#正序
zrange key start stop#倒序
zrevrange key start stop

  3、删除

zrem key member

  4、索引

#正序
zrank key member#倒序
zrevrank key member

  5、查看有序集合元素数

zcard key

  6、返回值在min 和 max之间的count

zcount key min max

  7、查看score值

zscore key member

  8、设置密码

#找到配置文件下的requirepass foobared 修改之后重启服务

七、Python操作Redis

  端口转发

#虚拟机设置---->网络 ---> 高级  ----> 端口转发-----> +号 ---->输入端口#只针对端口模式,桥接不需要

  先安装一个第三方库redis

#虚拟环境:workon py3env
#安装包:pip install redis

  连接

cache = redis.Redis(host='',port='')

  python中操作

import redisconn = redis.Redis(host= "127.0.0.1",port="6479")#创建连接

conn.set('name','qwe123') #常用操作都是以conn为前缀print(conn.get('name').decode('utf8')) #不加后面decode('utf8')的话输出的是二进制代码,特别是输出的是中文尤其不便 ,所以需要后面的编码转义;输出以b开头的为二进制的意思#add-->针对集合 sadd zadd
#get--->获取
#m... ---->设置多个#特殊情况#整减和整加 decr read_count 10
conn.decr('read_count',amount=10) #整减需要加上后面的关键字amount#设置多个字符串 mset p1 pp1 p2 pp2
conn.mset(p1='pp1',p2='pp2')#设置多个hash hmset key xx xxx xx xxx
conn.hmset('key',{"xx":"xxx"},{"xx":"xxx"})

转载于:https://www.cnblogs.com/xuchengcheng1215/p/8592617.html

python进阶12 Redis相关推荐

  1. python进阶12并发之八多线程与数据同步

    原创博客地址:python进阶12并发之八多线程与数据同步 python并发首选进程,但偶尔有场景进程无法搞定,比如有些变量是无法序列化的,就无法使用工具包manager()的工具类进行共享.如果自己 ...

  2. [python进阶]12.继承的优缺点

    本章探讨继承和子类化,重点是说明对 Python 而言尤为重要的两个细节: 子类化内置类型的缺点 多重继承和方法解析顺序 12.1 子类化内置类型很 12.2 多重继承和方法解析

  3. python redis缓存原理_python笔记-12 redis缓存

    一.redis引入 1.简要概括redis 1.1 redis默认端口:6379 1.2 redis实现的效果:资源共享 1.3 redis实现的基本原理:不同的进程和一个公共的进程之间建立socke ...

  4. Python学习笔记(12)-Python进阶12-类和对象

    Python进阶12-类和对象 1 面向对象概述 1.1 对象 1.2 类 1.2.1 面向对象程序设计的特点 2 类的定义和使用 2.1 定义类 2.2 创建类的实例 2.3 "魔术方法& ...

  5. Python 进阶之递归函数一点都不难!

    封图| CSDN│下载于视觉中国 作者 | 程序员adny 责编 | 徐威龙 出品 |  AI科技大本营(ID:rgznai100) 本篇文章主要介绍了Python进阶之递归函数的用法及其示例,现在分 ...

  6. python进阶学习路线(全)

    学习路线: 1.硬件: 1.操作系统简介 2.第二篇:操作系统 2.linux基础: 1.初始Linux 2.基本使用 3.Linux进阶 3.python基础 : 1.python基础大纲 2.变量 ...

  7. python进阶学习--- django框架解析 ---领悟编程语言共性与特性【后续详解】

    python进阶学习---> django框架解析 --->领悟编程语言共性与特性 1.python语言介绍   python解释型脚本语言 2.python执行原理   python解释 ...

  8. Python进阶之递归函数的用法及其示例

    作者 | 程序员adny 责编 | 徐威龙 封图| CSDN│下载于视觉中国 出品 |  AI科技大本营(ID:rgznai100) 本篇文章主要介绍了Python进阶之递归函数的用法及其示例,现在分 ...

  9. Python 进阶_生成器 生成器表达式

    目录 目录 相关知识点 生成器 生成器 fab 的执行过程 生成器和迭代器的区别 生成器的优势 加强的生成器特性 生成器表达式 生成器表达式样例 小结 相关知识点 Python 进阶_迭代器 & ...

  10. 三步解决C语言中struct字节对齐问题,Python进阶篇-struct字节对齐问题

    Python进阶篇-struct字节对齐问题 Python进阶篇-struct字节对齐问题 Python调用C的时候,会传递一些复杂的数据结构,例如结构体,这时候就会遇到各种各样字节对齐的问题.下边所 ...

最新文章

  1. 过程中存根的作用有_模温机的作用 模压过程中模温机的作用有哪些?
  2. c语言逆序输出字符串指针,菜鸟求助-如何用指针法将一串字符按单词的倒序输出?如:i love yo...
  3. RTP/RTCP流媒體服務器技術研究
  4. 富文本存储型XSS的模糊测试之道
  5. Oracle ERP简介
  6. The mbstring extendsion is missing,Please check you PHP configuration
  7. 推荐个工作日志的软件nyfedit
  8. 计算机网络安全 的论文,网络安全论文3000字范文参考(3)
  9. 华为手机pc模式机型_哪些手机型号外接便携显示器能实现PC电脑模式
  10. MFS分布式存储搭建
  11. 你好,你是谁,可不可以向我出示源代码让我确认身份
  12. python足球数据可视化_欧洲足球,5大联赛!Python爬虫数据可视化带你解析经典赛事...
  13. 码率控制(一):理解码率控制模式(x264,x264,vpx)
  14. ZeroDivisionError:Integer division or modulo by zero
  15. 普通人最缺乏的深度思考能力,该如何培养?
  16. CAD转换技巧篇,安装迅捷CAD转换器的后续操作!
  17. 关于Excel不能显示加载项的问题解决
  18. UG8.0四轴联动产品编程加工视频教程
  19. 11g文档学习1----安装Oracle软件
  20. 牛客算法周周练8 「金」点石成金 暴力

热门文章

  1. atitit 解决教学记忆问题 压缩算法原理  哈夫曼 LZ77 gzip  zlib deflate算法.docx 目录 1. 压缩理论 1 1.1. 柯氏复杂性 1 2. 1 RLE 1
  2. Atitit 组织软资产建设 知识管理 经济学架构体系
  3. atitit.常用编程语言的性能比较 c c++ java
  4. paip.提升用户体验----错误信息提示结构总结
  5. 祝威廉 :Rust FFI 实践
  6. Erlang 之父两点忠告:不要在疲惫时写代码、先思考再编程
  7. 网络安全行业全景图(2019年1月)
  8. Julia: 如何读出csv文件中的中文字符?
  9. Julia: 从set 、setdiff和 setdiff!说起
  10. Python 命令行库的大乱斗 | 凌云时刻