一、redis介绍

redis是一种非关系型数据库:没有表结构,没有字段,没有sql语句。只是用get获取数据,set插数据,类似字典。比如mangodb,redis
redis的数据全存在内存,redis本身每秒支持30万次读写,性能很好。但是没办法持久化,redis一重启就没了

二、redis数据库的连接

redis数据库连接时要引入redis模块,这是个第三方模块,需要安装,安装后引入

import redis

r=redis.Redis(host='192.168.10.1',password='*&&*1254',db=1,port=6379)#host是redis数据库服务器ip,db可根据实际情况进行连接。port默认是6379,根据实际情况填写

三、redis数据类型

1、string

string类型就是简单的key-value.,可以通过get和set方法获取和设置值

  1. #增删改查
  2. # r.set('dfdf','帅')#增加和修改都用set。其实带有四个参数,如果不写明,则默认ex=None, px=None, nx=False, xx=False
  1. '''参数:
  1. set(name, value, ex=None, px=None, nx=False, xx=False)
  2. ex,过期时间(秒)
  3. px,过期时间(毫秒)
  4. nx,如果设置为True,则只有name不存在时,当前set操作才执行,同setnx(name, value)
  5. xx,如果设置为True,则只有name存在时,当前set操作才执行'''
  6.  
  7. r.set('aaa','2',nx=True)如果存在aaa,则不会修改aaa的值,如果不存在,会创建aaa,等同于r.setnx('aaa','2')
    r.set('aaa','2',ex=10)等同于r.sexex('aaa','2',10)
    r.set('aaa111','2',xx=True)存在key则修改,如果不存在,不执行
  8.  
  9. r.psetex(name, time_ms, value)#设置过期时间毫秒.等同于r.set('aaa','2',px=20000)
  1. #设置过期时间(豪秒)
  1. # r.delete('dfdf')#删除,指定key即可
  2. # r.setex('zy','hhhh',10)#设置失效时间。10秒后key就删除了
  3. # print(r.get('hwt').decode())#直接获取是个二进制,用decode方法将二进制转变成字符串
  4. # print(r.keys())#获取到所有的key
  5. # print(r.keys('niu*'))#查出所有以niu开头的key
  6. # print(r.get('lynn'))#get一个不存在的key,返回none
  7.  
  8. # r.set('双子座zy:zy','放在文件夹中')#key前加上冒号:,冒号前的就是文件夹
  9. # r.set('双子座zy:zy:01','多层文件夹')
  10. # r.get('双子座zy:zy')
  11.  
  12. # for k in r.keys:#循环遍历所有的key,然后删除
  13. # r.delete(k)
  1.  
  1.  

mset()

  1. #批量设置值
  2. r.mset(name1='zhang', name2='lisi')
  3. #或
  4. r.mget({"name1":'zhang', "name2":'lisi'})

mget(keys, *args)

  1. #批量获取
  2. print(r.mget("name1","name2"))
  3. #或
  4. li=["name1","name2"]
  5. print(r.mget(li))

2、hash类型

类似嵌套字典,key对应的还是个key-value;数据库中存储如下sessionzy就是对应的还是一个key-value

操作:

  1. # r.hset('sessionzy','hhh','1nnfjdfjebfdfd')#哈希插入数据用hset.参数中第一个是外层,然后第二个是key,第三个是value
  2. # print(r.type('stu_info'))#查看key的类型
  3.  
  4. # print(r.hget('stu_info','1212').decode())#获取哈希类型数据用hget.第一个参数是外层key,第二个参数是内层key
  5. # print(r.hgetall('stu_info'))#获取key内的所有key-value,二进制
  6.  
  7. # r.hdel('stu_info','哈哈哈')#删除指定的key
  8. # r.delete('stu_info')#删除整个key
  9. #r.expire('aaa',100)#设置key失效时间,不管是string还是hash都可使用
  10. # print(r.ttl('jd'))#获取key还有多久失效
  11. # dic={}
  12. # for k,v in r.hgetall('stu_info').items():#循环将所有key,value转换成字符串
  13. # dic[k.decode()]=v.decode()
  14. # print(dic)
  15. # r.hset('sessionzy','zhangyao',{'session':'wewewe','logintime':232323})
  16. # print(type(r.hget('sessionzy','zhangyao').decode()))

pyhton:操作redis的更多相关文章

  1. redis缓存数据库及Python操作redis

    缓存数据库介绍  NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库,随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站, 特 ...

  2. [Redis-CentOS7]Python操作Redis(十一)

    Python 操作redis #!/usr/bin/env pyhton # coding:utf-8 # @Time : 2020-02-16 21:36 # @Author : LeoShi # ...

  3. Java Spring mvc 操作 Redis 及 Redis 集群

    本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 R ...

  4. Java中使用Jedis操作Redis(转载)

    整理 1.字符串 添加:set keyname value 查询:get keyname 拼接:append keyname value 删除:del keyname 添加多个: mset keyna ...

  5. (转)Java中使用Jedis操作Redis

    转自http://www.cnblogs.com/liuling/p/2014-4-19-04.html 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://file ...

  6. Python—操作redis

    Python操作redis 连接方式:点击 1.String 操作 redis中的String在在内存中按照一个name对应一个value来存储 set() #在Redis中设置值,默认不存在则创建, ...

  7. php操作redis简单例子

    <?php //在PHP里操作Redis //Redis就是php的一个功能类 //创建Redis对象 $redis = new Redis(); //链接redis服务器 $redis -&g ...

  8. python——操作Redis

    在使用django的websocket的时候,发现web请求和其他当前的django进程的内存是不共享的,猜测django的机制可能是每来一个web请求,就开启一个进程去与web进行交互,一次来达到利 ...

  9. 使用jedis操作redis

    一 连通性 1. 简单代码测试连通性 Jedis jedis = new Jedis(".......", 6379); String keys = "name" ...

  10. Java中使用Jedis操作Redis

    使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip 如果需要使用Redis ...

随机推荐

  1. Vuex mapMutation的基本使用

    mapMutation-store中的同步方法 import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default n ...

  2. RNN以及LSTM简介

    转载地址 https://blog.csdn.net/zhaojc1995/article/details/80572098 本文部分参考和摘录了以下文章,在此由衷感谢以下作者的分享! https:/ ...

  3. 在阿里云托管kubernetes上利用 cert-manager 自动签发 TLS 证书[无坑版]

    前言 排错的过程是痛苦的也是有趣的. 运维乃至IT,排错能力是拉开人与人之间的重要差距. 本篇会记录我的排错之旅. 由来 现如今我司所有业务都运行在阿里云托管kubernetes环境上,因为前端需要对 ...

  4. Node学习基础之安装node以及配置环境变量

    第一步去node官网下载nodejs 我放在D盘 接着在cmd输入node -v 就能得到node的版本号 还有npm -v 下来进入安装好的目录 nodejs目录 创建两个文件夹 node_cach ...

  5. 在.NET Core中使用MongoDB明细教程(2):使用Filter语句检索文档

    在上篇文章我们介绍了一些驱动程序相关的基础知识,以及如何将文档插入到集合中.在这篇文章中,我们将学习如何从数据库中检索文档. 作者:依乐祝 译文地址:https://www.cnblogs.com/y ...

  6. Gitlab-CI/CD 1

    Gitlab-Runner自动构建服务器搭建1 这里讲到的gitlab仓库指的是https://gitlab.com/,自建gitlab仓库也基本相同. 项目的构建打包过程相对比较消耗系统性能,所以g ...

  7. dive:一款按层分析docker镜像的工具

    原文链接:https://www.freebuf.com/sectool/191596.html 要分析Docker镜像,只需使用image tag/id/digest运行: dive <you ...

  8. Four Fundamental Operations(JS) --结对项目

    一.Github地址:https://github.com/BayardM/Four-Fundamental-Operations (本项目由鲍鱼铭3118004995 和 许铭楷3118005023 ...

  9. Windows下搭载虚拟机以及环境安装

    前言 最近回到家中进行赛前自主提升 模拟赛考虑到考试环境是NOI Linux 而大多数同学电脑环境为Windows 有同学想要模拟真实考试环境 但是NOI Linux的系统过于"阉割版&qu ...

  10. 【独家】React Native 版本升级指南

    前言 React Native 作为一款跨端框架,有一个最让人头疼的问题,那就是版本更新.尤其是遇到大版本更新,JavaScript.iOS 和 Android 三端的配置构建文件都有非常大的变动,有 ...