Redis in python
什么是Redis
数据库类型分为两种,关系型和非关系型,Redis是一个非常重要的非关系型数据库。
既然是数据库,就是存储数据的一个空间,或者说是一个软件,非关系就是不再按照一对一多对多等结构进行外键关联,而是通过“key-value“进行数据存储。
接下来对比着Memcached进行对比。
Memcached与Redis对比
- 共同点
* Redis缓存在内存中
* 属于”key-value“结构
- 不同点
* Redis可以做持久化,也就是说把数据保存在硬盘上。也是redis运用广泛的原因之一,而Memcached由于没有这一功能,这也导致了它的速度更快。
* Redis支持丰富的数据类型,如链表,字符串,hash,集合。
为什么使用Redis
Redis通过指令集控制数据,网站的操作最多的就是查询操作,如博客园,如果每次查询都去硬盘上获取数据,就会导致运行速度极慢,假如我们使用msql和redis,
加入mysql服务器崩溃,也没有巨大影响,只有做数据同步时才会有交互。
Redis下载和安装
下载链接
https://github.com/MicrosoftArchive/redis/releases
下载这没什么好说的,注意默认端口号6379,内存根据需求,不需要过大,默认是100m。
Redis的使用
启动Redis客户端

测试

在python中的使用
对于python程序员,对于redis的理解较为容易,可以把其理解为一个字典(可以多层嵌套)。
value可以是hash,链表,字符串等
基本使用
· 导入redis,import redis
` 获取redis对象 r_obj = redis.Redis(host,post)
· r.set(key,value) , r.get(key)
另一种连接方式
通过连接池的方式进行连接,避免大量的连接开销(也就是一次请求连接一次)。
· 导入redis,import redis
· 创建连接池,r_pool = redis.ConnectionPool()
· 获取redis对象 r_obj = redis.Redis(connection = r_pool )
Redis的字符串操作
set
import redis r_pool = redis.ConnectionPool()
r_obj = redis.Redis(connection_pool = r_pool)
r.set("name","cui",10) #缓存的时效性,联系python内置的cache print(r_obj.get("name")) r_test1 = r_obj.setnx("name","yuan") print(r_test1) #setnx,只有在键不存在的时候才会创建,如set方法的nx参数设置为True r_test2 = r_obj.mset(k1 = "v1",k2 = "v2")
r_test3 = r_obj.mset({k3:"k3",k4:"v4"}) print(r_test2,r_test3)
get
#接上段演示
r1 = r_obj.get("name")
r2 = r_obj.mget(["k1","k2"])
r3 = r_obj.getset("name","zhang") #设置新值,获取旧值
r4 = r_obj。getrange("name",1,2) #后面两个参数是切片
r_obj.setrange(key,pos,value) #覆盖性的插入
strlem
#接上段演示
print(r_obj.strlen("name")) #获取长度
incr,decr
#接上段演示
r_obj.set("price","100")
r.incr("price",9) #加10
prit(r.get("price"))
r.decr("price",1) #减1
append
r_obj.append("name",""shuai) #追加
print(r.get("name))
Redis的List操作
lpush
#接上段演示
r_obj.lpush("parter","菠萝赛东",”新垣结衣“) #再次添加会在左边进行插入
lrange,ltrim
#接上段演示
r_obj.lrange("partner",0,-1)
r_ltrim("partner",1,2) #区别是除了取出的区间外全部删除
linsert
#接上段演示
r_obj.insert("parnter","AFTER","abc") #在后边插入
lset
#接上段演示
r_obj.lset("partner",2,"苍老师") #根据索引进行替换
lremove
r_obj.lremove("parter","苍老师") #删除,还有参数定义执行次数
lpop
#接上段演示
r_obj.pop("partner") #从左第一个删除
lindex
r_obj.lindex("parnter",1) #通过索引获取值
Redis的Hash操作
hset,hget,hgetall
#可以设置连接池decode_response = True,以字符显示
r_obj.hset("sport","ball","basketball") #可以联想嵌套字典
r_obj.hget("sport","ball")
r_obj.hgetall("sport")
hmget,hmset
r_obj.hmset("k1",{"k11":"v11","k22":"v22"})
r_obj.hmget("k1",["k11"]})
hexits,exits
r_obj.hexits("sport","ball") #判断是否存在
r_obj.exits("sport")
hdel
r_obj.hdel("sport","ball") #删除
Redis层操作
keys
r_obj.keys() #取所有的键 ,内部参数支持模糊查询,?,*,[]字符集
delete
r.delete("sport")
r.delete(*r_obj.keys()) #删除所有
expire
r_obj.expire("sport",5) #设置过期时间
Redis in python的更多相关文章
- Redis的Python实践,以及四中常用应用场景详解——学习董伟明老师的《Python Web开发实践》
首先,简单介绍:Redis是一个基于内存的键值对存储系统,常用作数据库.缓存和消息代理. 支持:字符串,字典,列表,集合,有序集合,位图(bitmaps),地理位置,HyperLogLog等多种数据结 ...
- Redis的Python客户端redis-py的初步使用
1. Redis的安装 sudo pip install redis sudo pip install hiredis Parser可以控制如何解析redis响应的内容.redis-py包含两个Par ...
- redis与python交互
import redis #连接 r=redis.StrictRedis(host="localhost",port=6379,password="sunck" ...
- LinuxMint上安装redis和python遇到的一些问题
今天在安装Redis和Python上遇到了些问题,解决后记录下来. 环境:LinuxMint 18.3 安装redis sudo wget http://download.redis.io/relea ...
- Redis在python中的使用
一 简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted ...
- redis & macOS & python
redis & macOS & python how to install python 3 on mac os x? https://docs.python.org/3/using/ ...
- Redis的Python客户端redis-py
1. 安装 1. redis-py a. 使用easy_install 1 sudo easy_install redis b. 源码安装 1 2 3 git clone https://githu ...
- Redis client Python usage
http://www.yiibai.com/redis/redis_sorted_sets.html mport redis r_server = redis.Redis('localhost') # ...
- Redis之Python操作
Redis简单介绍 如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点:1 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构 ...
随机推荐
- css中文字体解决方案
html { font-family: -apple-system, "Noto Sans", "Helvetica Neue", Helvetica, &qu ...
- 0.Git介绍
版本控制工具:SVN,Git Git是分布式版本控制系统,SVN是集中式的版本控制系统.(借一位网友的图以示区别) SVN只有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过 ...
- Keepalived+Nginx实现高可用Web负载均衡
1.安装编译 Nginx 所需的依赖包# yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zli ...
- RSA算法加解密
package org.thcic.ejw.util.encrypt; import java.io.ByteArrayOutputStream; import java.security.Key; ...
- XML语言1.简介和语法
一.什么是XML语言? XML 指可扩展标记语言(Extensible Markup Language) Xml是独立于软件和硬件的信息传输工具. XML 是一种很像HTML的标记语言. 但xml不是 ...
- 【react】---手动封装一个简易版的redux
export let createStore = (reducer)=>{ //定义默认的state let state; //定义默认的action let actionTypes = &qu ...
- csv 数据
csv数据:逗号分隔值,其文件以纯文本的形式存储表格数据(数据和文本).csv模块是python的内置模块,需要引用后再使用 csv.reader(csv_file) #使用with结构 with o ...
- libguestfs手册(1): 架构
要编辑一个image,则运行下面的命令 guestfish -a ubuntutest.img ><fs> 会弹出一个命令行工具 运行run ><fs> run 我 ...
- live555工程建立与调试
Live555是一款开源的RTSP服务器,下载地址http://www.live555.com/liveMedia/public/ 下载下来的代码只有源文件,没有工程文件.那么如何使用VS 调试liv ...
- 【开源项目】电视盒子好用又强大的APP: TVRemoteIME
TVRemoteIME 电视盒子的远程输入法应用,可跨屏远程输入.跨屏远程控制盒子.远程文件管理.HTTP/RTMP/MMS网络视频直播.ED2K/种子文件的视频文件边下边播 应用的诞生 自从家里有电 ...