博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 9 Redis
阅读量:6590 次
发布时间:2019-06-24

本文共 2195 字,大约阅读时间需要 7 分钟。

 

Redis介绍

redis是key-value型的存储系统,支持多种数据结构,包括String、List、Set、Zset和Hash。其数据都缓存在内存中,但是会定时将数据写入磁盘。

 

一、redis的特点

1、数据存储在内存中,读取写入速度快

2、支持持久化,定时将数据写入磁盘。

3、支持五种数据类型,但是不支持嵌套。

4、支持事务,要么都执行要么都不执行。

 

二、redis操作

连接redis:

1 #方式一:直接连接2 import redis3 conn = redis.Redis(host="127.0.0.1", port=6379, password=xxxx)4 5 6 #方式二:创建连接池7 pool = redis.ConnectionPool(host="127.0.0.1", port=6379, password=xxxx, max_connections=100)8 conn = redis.Redis(connection_pool=pool)

全局操作:

conn.keys()   #取到所有的键#redis可以使用模糊匹配,*代表任意多个字符, ?代表一个字符, [k,m]代表匹配中括号内的字符conn.delete("name")   #删除一个键值conn.flushall()    #删除所有键值conn.exists("name")    #查看这个键是否存在conn.rename(old, new)    #重命名一个键conn.randomkey()    #随机获取一个键scan_iter(name)    #返回一个迭代器,防止值太多导致系统崩溃

事务:

1 pipe = conn.pipeline(transation=True)2 pipe.multi()3 xxxx4 pipe.execute()

 

1、String操作

1 conn.set(k, v)    #设置单个值2 conn.get(k)    #获取单个值3 conn.mset({k1:v1, k2:v2})    #批量设置值4 conn.mget(k1, k2)    #批量获取值

 

2、List操作

1 conn.lpush(name, val)    #向列表最左边存放数据 2 conn.rpush(name,val)     # 向列表最右边存放数据 3 conn.lpop(name)    #取出最左边的值 4 conn.rpop(name)    #取出最右边的值 5  6 conn.lrange(name, start, end)    #取出列表一定范围内的值 7 conn.lindex(name, index)    #取出该索引位置的值 8 conn.llen(name)     #查看列表长度 9 10 #自定义增量迭代11 #如果想取出列表中的所有值,需要自定义一个函数,一个值一个值取,防止程序崩溃。12 def  get_list(name)13     length = conn.llen(name)14     for index in range(length):15         yield conn.lindex(name, index)16 17 for i in get_list("xxx"):18     print(i)

 

3、Hash操作

1 conn.hset(name, key, val)    #设置值 2 conn.hget(name, key)    #取值 3 conn.hmset(name, {k1:v1, k2:v2})   #批量设置值 4 #conn.hmget(name, k1, k2) 5 conn.hmget(name, [k1, k2])    #批量获取值 6 conn.hgetall(name)    #获取所有键值 7  8 conn.hlen(name)    #获取键值对个数 9 conn.hkeys(name)    #获取所有的键10 conn.hvals(name)    #获取所有的值11 conn.hexists(name, key)    #检查是否存在对应的键12 conn.hdel(name, key)     #删除13 14 conn.hscan_iter(name)    #批量获取键值15 #for k,v in conn.hscan_iter(name):16 #    print(k, v)

 

4、Set操作(集合可以用来去重)

1 conn.sadd(name, val)    #给集合添加元素2 conn.spop(name)    #从集合右侧取出并删除一个值3 conn.smembers(name)    #获取name对应集合的所有元素4 conn.sismember(name, val)    #检验是否是该集合的值5 6 conn.sscan_iter()

 

5、Sorted Set(有序集合)

1 conn.zadd(name,k1=1,k2=2)   #添加值和优先级

 

转载于:https://www.cnblogs.com/yinwenjie/p/10847515.html

你可能感兴趣的文章
面向对象编程案例03---继承之高级部分
查看>>
LeetCode——Gas Station
查看>>
Redhat 用代理连外网
查看>>
git-push(1) Manual Page
查看>>
【蓝桥杯】 PREV-1 核桃数
查看>>
东北四省杯经验
查看>>
GIS开发离线地图应用-初识gis
查看>>
java日期工具类DateUtil
查看>>
SharePoint 2013 error The given assembly name or codebase System.ServiceModel.dll was invalid
查看>>
第四章:Django 的模板系统(转)
查看>>
What is corresponding Cron expression to fire in every X seconds, where X > 60? --转载
查看>>
线性同余方程模板( A+C*x=B(mod D) )
查看>>
OpenCV Open Camera 打开摄像头
查看>>
2015第49周三
查看>>
CentOS6.5下安装MySQL
查看>>
7.5 数据注解特性--MaxLength&&MinLength
查看>>
企业日志分析 五大问题需重点注意
查看>>
《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高...
查看>>
MyBatis学习总结(五)——实现关联表查询
查看>>
SQLite介绍、学习笔记、性能测试
查看>>