一,redis的持久化方式
方式 原理 优缺点 rob 当redis需要做持久化时(执行SAVA或者BGSAVA命令,或者是达到配置条件时执行),redis会fork一个子进程,子进程将数据写到磁盘上一个临时RDB文件中,当子进程完成写临时文件后,将原来的RDB替换掉(默认文件名为dump.rdb) 定时备份,Redis效率高,但是容易造成数据丢失,丢失的多少和备份策略有关,例如:5分钟备份一次,但是第8分时宕机了,那么就丢失了后面的3分钟数据 aof AOF就可以做到全程持久化,Redis每执行一个修改数据的命令,都会把这个命令添加到AOF文件中,当Redis重启时,在重启redis的时候,redis可以根据.aof文件的内容来恢复数据集 AOF基本可以保证数据不丢失,但是AOF持久化文件会变的越来越大。例如我们调用incr test命令100次,文件中必须保存全部的100条命令,其实有99条都是多余的。
二,redis的数据类型
类型 说明 格式 String string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型,一个键最大能存储512MB。 set key value Hash hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。 hmset name key1 value1 key2 value2 list 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边) lpush name value Set Set是string类型的无序集合。 sadd name value zset Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 zadd name score value
三,python和数据库的交互方式
import redis
r = redis. StricRedis ( host= "localhost" , port= 6379 )
r. set ( 'name' , 'hello' )
r. get ( )
pipe = r. pipeline
pipe. set ( )
pipe. get ( )
pipe. excute ( )
封装成方法
import redis
class RedisHelper ( ) :
def __init__ ( self , host= 'localhost' , port= 6379 ) :
self . __redis = redis. StrictRedis ( host, port)
def get ( self , key) :
if self . __redis. exists ( key) :
return self . __redis. get ( key)
else :
return ""
def set ( self , key, value) :
self . __redis. set ( key, value)
三,操作语句
String
set key value
set name momo
get key
get name
mset key value key value
MGET key key
setex key seconds value
incr key
incrby key N
decr key
decrby key N
strlen key