redis 数据库简介
redis数据库
redis数据库
为什么要学习redis
|
1
2
3
4
5
6
7
8
9
|
"""1、redis是内存 no-sql 数据库,相比mysql等硬盘数据库效率高2、在内存值配置数据库使用,而不直接使用内存,redis存储的数据是可以管理的3、memcache也是内存数据库,且django默认采用的就是memcache数据库,用redis替换memcache的路由很简单,后者更强大 redis支持更多的数据类型 redis自带缓存机制,出现数据库系统崩溃数据也是可以有找回的功能 redis可以主动完成数据持久化(自带数据持久化功能) redis的数据过期时间机制也可以自身完成""" |
redis安装
redis数据类型
|
1
|
注:在官网安装系统版本,下载对应安装包安装即可 |
|
1
2
3
4
5
6
7
8
9
|
"""支持的数据类型:String、Hash、List、Set、Sorted SetString:存储其他类型不能存的所有数据Hash:存储 key-value 形式数据,类似于字典List:存储 一系列有序value 形式数据,列表(数组)Set:存储 一系列无序value 形式数据,集合Sorted Set:存储 有排列标号value 形式数据,排行""" |
字符串类型
|
1
2
3
4
5
6
7
|
""" 重要方法set:key valueget:keymset:k1 v1 k2 v2 ... kn vnmget:k1 k2 ... knsetex:key exp value""" |
redis
基础命令
|
1
2
3
4
5
6
7
8
|
启动服务:>: redis-server &启动客户端连接redis>: redis-cli -h localhost -p 6379 -n 数据库编号(0~15)连接成功后切换数据库>: select 数据库编号 |
哈希操作
|
1
2
3
4
5
6
7
8
9
|
"""常用方法:单增:hset key field value单查:hget key field所有键值:hgetall key单删:hdel key field所有key:hkeys key所有值:hvals key""" |
列表操作
|
1
2
3
4
5
6
7
8
9
|
"""右增: rpush key v1 v2 ... vn左增: lpush key v1 v2 ... vn修改: lset key index value左删: lpop key右删: rpop key插入:linsert key before|after old_value new_value区间:lrange key begin_index end_index""" |
集合操作
|
1
2
3
4
5
6
7
8
|
"""增:sadd key v1 v2 ... vn差集:sdiff key1 key2并集:sinter key1 key2交集:sunion key1 key2查:smembers key随机删:spop key""" |
有序集合
|
1
2
3
4
5
6
|
"""增:zadd key score1 value1 score2 value2 ... scoren valuen区间个数:zcount key begin_score end_score排行低到高:zrange key begin_index end_index排行高到低:zrevrange key begin_index end_index""" |
python使用redis
依赖
|
1
|
>: pip3 install redis |
直接使用
|
1
2
|
import redisr = redis.Redis(host='127.0.0.1', port=6379) |
连接池使用
|
1
2
3
|
import redispool = redis.ConnectionPool(host='127.0.0.1', port=6379)r = redis.Redis(connection_pool=pool) |
缓存使用:要额外安装 django-redis
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# 1.将缓存存储位置配置到redis中:settings.pyCACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", "CONNECTION_POOL_KWARGS": {"max_connections": 100} } }}# 2.操作cache模块直接操作缓存:views.pyfrom django.core.cache import cache # 结合配置文件实现插拔式# 存放token,可以直接设置过期时间cache.set('token', 'header.payload.signature', 10)# 取出tokentoken = cache.get('token') |

浙公网安备 33010602011771号