一、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()))

最新文章

  1. 踩坑所引发出的appendChild方法的介绍
  2. [.net 面向对象程序设计进阶] (9) 序列化(Serialization) (一) 二进制流序列化
  3. javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 解决方案
  4. hdu 4039 暴力
  5. zju 1037 Gridland(找规律,水题)
  6. 【背包型动态规划】灵魂分流药剂(soultap) 解题报告
  7. stm32之CAN发送、接收详解
  8. 哈希表之bkdrhash算法解析及扩展
  9. WIP 投料报 Invalid Serial Number
  10. (NO.00003)iOS游戏简单的机器人投射游戏成形记(十九)
  11. PHP后端之验证码
  12. 史上最简单的 SpringCloud 教程
  13. GNU/Linux的GNU是什么意思
  14. python3.6配置libsvm2.2
  15. HDU 1159:Common Subsequence(LCS模板)
  16. 2017-2018-2 20155224『网络对抗技术』Exp6:信息搜集与漏洞扫描
  17. 57. 3Sum【medium】
  18. 面试整理(3)js事件委托
  19. 【Java】Java中常用的String方法
  20. js根据数组对象中某个元素合并数组

热门文章

  1. JavaScript 手写setTimeout
  2. Java程序员面试必备:Volatile全方位解析
  3. golang中type关键字使用
  4. day8 文件
  5. 【Spring注解驱动开发】自定义组件如何注入Spring底层的组件?看了这篇我才真正理解了原理!!
  6. docker-machine在阿里云部署批量部署docker
  7. 微信小程序-人脸识别
  8. Linux调用Kaggle API下载数据
  9. Paillier同态加密实现
  10. Spring是如何解决循环依赖的