pyhton:操作redis
一、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方法获取和设置值
#增删改查
# r.set('dfdf','帅')#增加和修改都用set。其实带有四个参数,如果不写明,则默认ex=None, px=None, nx=False, xx=False
'''参数:
set(name, value, ex=None, px=None, nx=False, xx=False)
ex,过期时间(秒)
px,过期时间(毫秒)
nx,如果设置为True,则只有name不存在时,当前set操作才执行,同setnx(name, value)
xx,如果设置为True,则只有name存在时,当前set操作才执行''' 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则修改,如果不存在,不执行 r.psetex(name, time_ms, value)#设置过期时间毫秒.等同于r.set('aaa','2',px=20000)
#设置过期时间(豪秒)
# r.delete('dfdf')#删除,指定key即可
# r.setex('zy','hhhh',10)#设置失效时间。10秒后key就删除了
# print(r.get('hwt').decode())#直接获取是个二进制,用decode方法将二进制转变成字符串
# print(r.keys())#获取到所有的key
# print(r.keys('niu*'))#查出所有以niu开头的key
# print(r.get('lynn'))#get一个不存在的key,返回none
# r.set('双子座zy:zy','放在文件夹中')#key前加上冒号:,冒号前的就是文件夹
# r.set('双子座zy:zy:01','多层文件夹')
# r.get('双子座zy:zy')
# for k in r.keys:#循环遍历所有的key,然后删除
# r.delete(k)
mset()
#批量设置值
r.mset(name1='zhang', name2='lisi')
#或
r.mget({"name1":'zhang', "name2":'lisi'})
mget(keys, *args)
#批量获取
print(r.mget("name1","name2"))
#或
li=["name1","name2"]
print(r.mget(li))
2、hash类型
类似嵌套字典,key对应的还是个key-value;数据库中存储如下sessionzy就是对应的还是一个key-value

操作:
# r.hset('sessionzy','hhh','1nnfjdfjebfdfd')#哈希插入数据用hset.参数中第一个是外层,然后第二个是key,第三个是value
# print(r.type('stu_info'))#查看key的类型
# print(r.hget('stu_info','1212').decode())#获取哈希类型数据用hget.第一个参数是外层key,第二个参数是内层key
# print(r.hgetall('stu_info'))#获取key内的所有key-value,二进制
# r.hdel('stu_info','哈哈哈')#删除指定的key
# r.delete('stu_info')#删除整个key
#r.expire('aaa',100)#设置key失效时间,不管是string还是hash都可使用
# print(r.ttl('jd'))#获取key还有多久失效
# dic={}
# for k,v in r.hgetall('stu_info').items():#循环将所有key,value转换成字符串
# dic[k.decode()]=v.decode()
# print(dic)
# r.hset('sessionzy','zhangyao',{'session':'wewewe','logintime':232323})
# print(type(r.hget('sessionzy','zhangyao').decode()))
pyhton:操作redis的更多相关文章
- redis缓存数据库及Python操作redis
缓存数据库介绍 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库,随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站, 特 ...
- [Redis-CentOS7]Python操作Redis(十一)
Python 操作redis #!/usr/bin/env pyhton # coding:utf-8 # @Time : 2020-02-16 21:36 # @Author : LeoShi # ...
- Java Spring mvc 操作 Redis 及 Redis 集群
本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 R ...
- Java中使用Jedis操作Redis(转载)
整理 1.字符串 添加:set keyname value 查询:get keyname 拼接:append keyname value 删除:del keyname 添加多个: mset keyna ...
- (转)Java中使用Jedis操作Redis
转自http://www.cnblogs.com/liuling/p/2014-4-19-04.html 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://file ...
- Python—操作redis
Python操作redis 连接方式:点击 1.String 操作 redis中的String在在内存中按照一个name对应一个value来存储 set() #在Redis中设置值,默认不存在则创建, ...
- php操作redis简单例子
<?php //在PHP里操作Redis //Redis就是php的一个功能类 //创建Redis对象 $redis = new Redis(); //链接redis服务器 $redis -&g ...
- python——操作Redis
在使用django的websocket的时候,发现web请求和其他当前的django进程的内存是不共享的,猜测django的机制可能是每来一个web请求,就开启一个进程去与web进行交互,一次来达到利 ...
- 使用jedis操作redis
一 连通性 1. 简单代码测试连通性 Jedis jedis = new Jedis(".......", 6379); String keys = "name" ...
- Java中使用Jedis操作Redis
使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip 如果需要使用Redis ...
随机推荐
- C#LeetCode刷题之#643-子数组最大平均数 I( Maximum Average Subarray I)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3728 访问. 给定 n 个整数,找出平均数最大且长度为 k 的连 ...
- Kafka2.6.0发布——性能大幅提升
近日Kafka2.6版本发布,距离2.5.0发布只过去了不到四个月的时间. Kafka 2.6.0包含许多重要的新功能.以下是一些重要更改的摘要: 默认情况下,已为Java 11或更高版本启用TLSv ...
- Memcached高可用组件之repcached
在前边的tomcat session server msm的那篇博客我们用memcached做tomcat session服务器,默认官方memcached是不支持主从同步的,为了解决memcache ...
- LeetCode 931. 下降路径最小和 详解
题目详情 给定一个方形整数数组 A,我们想要得到通过 A 的下降路径的最小和. 下降路径可以从第一行中的任何元素开始,并从每一行中选择一个元素.在下一行选择的元素和当前行所选元素最多相隔一列. 示例: ...
- 338. Counting Bits题目详解
题目详情 Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate ...
- jQuery的事件与 动画
什么是事件: 事件的本质是委托. Jquery的 方法: $().css(); $().click(); 等等. 鼠标的事件: 区别在于:mouseover与mouseout再进入或离开后会执行这两个 ...
- idea Maven项目 包下载不下来或者已经下载了就是飘红
0.先在settings.xml加上阿里的镜像在刷新试试 <mirror> <id>aliyunmaven</id> <mirrorOf>*</m ...
- CentOS7 安装图形化桌面
1.装好CentOS7后,我们一开始是上不了网的 (ping 百度报错:Name or service not know) 2.输入dhclient,可以自动获取一个IP地址,再用命令ip addr查 ...
- 第1章 RDD概念 弹性分布式数据集
第1章 RDD概念 弹性分布式数据集 1.1 RDD为什么会产生 RDD是Spark的基石,是实现Spark数据处理的核心抽象.那么RDD为什么会产生呢? Hadoop的MapReduce是一种基于 ...
- 计算机网络-网络层(2)NAT协议
网络地址转换(NAT,Network Address Translation)协议: 本地网络内通信的IP数据报的源与目的IP地址均在子网10.0.0.0/24内:所有离开本地网络去往Internet ...