redis

一,redis的持久化方式
方式原理优缺点
rob当redis需要做持久化时(执行SAVA或者BGSAVA命令,或者是达到配置条件时执行),redis会fork一个子进程,子进程将数据写到磁盘上一个临时RDB文件中,当子进程完成写临时文件后,将原来的RDB替换掉(默认文件名为dump.rdb)定时备份,Redis效率高,但是容易造成数据丢失,丢失的多少和备份策略有关,例如:5分钟备份一次,但是第8分时宕机了,那么就丢失了后面的3分钟数据
aofAOF就可以做到全程持久化,Redis每执行一个修改数据的命令,都会把这个命令添加到AOF文件中,当Redis重启时,在重启redis的时候,redis可以根据.aof文件的内容来恢复数据集AOF基本可以保证数据不丢失,但是AOF持久化文件会变的越来越大。例如我们调用incr test命令100次,文件中必须保存全部的100条命令,其实有99条都是多余的。
二,redis的数据类型
类型说明格式
Stringstring类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型,一个键最大能存储512MB。set key value
Hashhash是一个string类型的field和value的映射表,hash特别适合用于存储对象。hmset name key1 value1 key2 value2
list列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)lpush name value
SetSet是string类型的无序集合。sadd name value
zsetRedis 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)
三,操作语句
  1. String
#插入数据
set key value
set name momo
#获取数据
get key
get name
#插入多个值
mset key value key value
#获取多个值
MGET key key
#设置键的过期时间
setex key seconds value
#当值是数据的时候通过键对值进行jiajian
#+1
incr key
#+N
incrby key N
#-1
decr key
#-N
decrby key N
#获取值的长度
strlen key
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值