什么是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的更多相关文章

  1. Redis的Python实践,以及四中常用应用场景详解——学习董伟明老师的《Python Web开发实践》

    首先,简单介绍:Redis是一个基于内存的键值对存储系统,常用作数据库.缓存和消息代理. 支持:字符串,字典,列表,集合,有序集合,位图(bitmaps),地理位置,HyperLogLog等多种数据结 ...

  2. Redis的Python客户端redis-py的初步使用

    1. Redis的安装 sudo pip install redis sudo pip install hiredis Parser可以控制如何解析redis响应的内容.redis-py包含两个Par ...

  3. redis与python交互

    import redis #连接 r=redis.StrictRedis(host="localhost",port=6379,password="sunck" ...

  4. LinuxMint上安装redis和python遇到的一些问题

    今天在安装Redis和Python上遇到了些问题,解决后记录下来. 环境:LinuxMint 18.3 安装redis sudo wget http://download.redis.io/relea ...

  5. Redis在python中的使用

    一 简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted ...

  6. redis & macOS & python

    redis & macOS & python how to install python 3 on mac os x? https://docs.python.org/3/using/ ...

  7. Redis的Python客户端redis-py

    1. 安装 1. redis-py a. 使用easy_install 1 sudo easy_install redis  b. 源码安装 1 2 3 git clone https://githu ...

  8. Redis client Python usage

    http://www.yiibai.com/redis/redis_sorted_sets.html mport redis r_server = redis.Redis('localhost') # ...

  9. Redis之Python操作

    Redis简单介绍 如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点:1 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构 ...

随机推荐

  1. Oracle DBLINK的相关知识整理

    一.DBLINK(Database Link)概念 dblink,顾名思义就是数据库的链接.当我们要跨本地数据库访问另一个数据库中的表的数据时,在本地数据库中就必须要创建远程数据库的dblink,通过 ...

  2. C# static 变量 和方法

    静态成员属于类所有,无认创建多少实例对象,静态成员在内存中只有一份:实例成员属于类的实例所有,每创建一个实例对象,实例成员都会在内存中分配一块内存区域. 就像图书馆的书,书的数量就是图书馆这个对象的静 ...

  3. 通过cmd命令,杀掉占用端口号的进程

    错误问题:[Error running public: Unable to open debugger port (127.0.0.1:53110): java.net.BindException & ...

  4. python scrapy框架爬取豆瓣

    刚刚学了一下,还不是很明白.随手记录. 在piplines.py文件中 将爬到的数据 放到json中 class DoubanmoviePipelin2json(object):#打开文件 open_ ...

  5. Hadoop源码分析(1):HDFS读写过程解析

    一.文件的打开 1.1.客户端 HDFS打开一个文件,需要在客户端调用DistributedFileSystem.open(Path f, int bufferSize),其实现为: public F ...

  6. Android 音视频开发(一) : 通过三种方式绘制图片

    版权声明:转载请说明出处:http://www.cnblogs.com/renhui/p/7456956.html 在 Android 音视频开发学习思路 里面,我们写到了,想要逐步入门音视频开发,就 ...

  7. 手动编译安装nginx

    1.下载nginx源码包并解压 可在http://nginx.org/en/download.html下载.tar.gz的源码包,如(nginx-1.4.7.tar.gz) 下载后通过tar -xvz ...

  8. [Swift]LeetCode112. 路径总和 | Path Sum

    Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all ...

  9. [Swift]LeetCode966.元音拼写检查器 | Vowel Spellchecker

    Given a wordlist, we want to implement a spellchecker that converts a query word into a correct word ...

  10. (转)iOS学习——UIlabel设置行间距和字间距

    在iOS开发中经常会用到UIlabel来展示一些文字性的内容,但是默认的文字排版会觉得有些挤,为了更美观也更易于阅读我们可以通过某些方法将UIlabel的行间距和字间距按照需要调节. 比如一个Labe ...