django缓存优化 Redis缓存介绍

来源:互联网 发布:淘宝精密管 编辑:程序博客网 时间:2024/05/17 03:09

windows安装


Redis 是一个开源的Inmemory key-value存储系统,性能高

补偿了Memcached的不足。支持多种类型,包括string,list,set,zset(有序集合)和hash


异常快速   每秒执行11万集合  81000+条记录


优点:

操作都是原子性:保证了两个客户端同时访问得到更新后的值

多功能实用工具:可以在多个用例如缓存,消息,队列使用(原生支持发布/订阅),任何短暂的数据,应用程序

如web应用程序会话,网页命中计数等。


基本命令

SET key value [EX seconds] [PX milliseconds] [NX|XX]

- EX,PX  过期时间  秒/毫秒

- NX key不存在才能设置

- XX key存在是才设置

SETNX key value

当key不存在 设置缓存K-V, 相当于 SET key value NX

MSET key value [key value ...]

设置多个

GET key

- key不存在 返回nil

- 如果缓存值不是string类型,报错

MGET key [key...]

返回多个  如果缓存类型不是string或key不存在,返回nil

INCR key

只支持64位带符号整型

- 如果key不存在, 执行操作前先将缓存之设为0

INCRBY key increment

DECR key

DECRBY key increment

RENAME key newkey

如果新key 与旧key 一样,或key不存在 报错

如果新key已存在 覆盖

EXISTS key [key...]

返回存在的数目

DEL key [key...]

如果key不存在 忽略  返回删除成功的数目

KEYS pattern

返回匹配模式的keys list

支持的匹配样式

- h?llo  matches hello hallo hxllo

- h*llo matches hllo heeeello

- h[ae]llo matches hello hallo not hillo

- h[^e]llo matches hallo hbllo not hello

- h[a-b]llo natches hallo hbllo

TTL key

返回key的存活时间 seconds

- 返回-2 key不存在

- 返回-1 key存在 没设置过期时间

PERSIST key

删除设置的过期时间

- 返回1 删除成功

- 返回0 key不存在 或 没有设置过期时间

EXPIRE key seconds

设置过期时间

FLUSHALL

清空所有缓存数据

FLUSHDB

清空当前DB的缓存数据


django-redis后端解析

set 

get

 add

 set_many

get-many

incr decr

has_key

ttl

expire

persist

delete

clear

-------------

登陆站点服务器 cmd

redis-server.exe redis.windows.conf
双击redis-cli.exe登陆

127.0.0.1:6379> FLUSHALLOK127.0.0.1:6379> SET k1 v1OK127.0.0.1:6379> set k2 v2OK127.0.0.1:6379> set k2 v2 ex 30OK127.0.0.1:6379> setnx k1 v1new(integer) 0127.0.0.1:6379> set k1 v1new nx(nil)127.0.0.1:6379> set k3 v3 nxOK127.0.0.1:6379> get k3"v3"127.0.0.1:6379> set k4 v4 xx(nil)127.0.0.1:6379> set k3 v3new xxOK127.0.0.1:6379> get k3"v3new"127.0.0.1:6379> setnx k4 v4(integer) 1127.0.0.1:6379> setnx k4 v4(integer) 0127.0.0.1:6379> get k4"v4"127.0.0.1:6379> mset k5 v5  k6 v6OK127.0.0.1:6379> mget k5 k61) "v5"2) "v6"127.0.0.1:6379> incr k7(integer) 1127.0.0.1:6379> get k7"1"127.0.0.1:6379> incrby k7 5(integer) 6127.0.0.1:6379> get k7"6"127.0.0.1:6379> decr k8(integer) -1127.0.0.1:6379> decrby k8 5(integer) -6127.0.0.1:6379> get k8"-6"127.0.0.1:6379> rename k8 k9OK127.0.0.1:6379> get k8(nil)127.0.0.1:6379> get k9"-6"127.0.0.1:6379> rename k7 k9OK127.0.0.1:6379> get k9"6"127.0.0.1:6379> exists k8 k9(integer) 1127.0.0.1:6379> exists k8(integer) 0127.0.0.1:6379> help exists  EXISTS key  summary: Determine if a key exists  since: 1.0.0  group: generic127.0.0.1:6379> keys *1) "k6"2) "k3"3) "k5"4) "k9"5) "k4"6) "k1"127.0.0.1:6379> del k9(integer) 1127.0.0.1:6379> keys *1) "k6"2) "k3"3) "k5"4) "k4"5) "k1"127.0.0.1:6379> ttl k1(integer) -1127.0.0.1:6379> ttl kn(integer) -2127.0.0.1:6379> expire k4 300(integer) 1127.0.0.1:6379> ttl k4(integer) 295127.0.0.1:6379> persist k4(integer) 1127.0.0.1:6379> ttl k4(integer) -1127.0.0.1:6379> persist kn(integer) 0




 

安装redis for Django的插件:

pip install django-redis




0 0
原创粉丝点击