
Redis一个高性能的key-value数据库
Redis的出现,很大程度补偿了Memcached这类key-value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。
Redis和Memcached类似,它支持存储的value类型相对更多,Values常用的数据结构有String、List、Set、Sorted Set、Hashe、Stream 6种,当然不同类型有不同的特性,操作命令是不尽相同的。
redis-py是Python中操作Redis数据库的常用模块,模块中命令函数基本上是与原命令命名一致,子命令都是作为命令的参数使用。
语法格式 :
对应的函数是:
Redis命令命名有以下特点:
命令以S开头的为集合操作命令
命令以Z开头的为有序集合操作命令
命令以H开头的为哈希集操作命令
命令以X开头的为流操作命令
例如:
INCRBY是字符串类型原子递增的操作命令
ZINCRBY是有序集合类型的分数(权值)原子递增的操作命令
HINCRBY是哈希集类型指定字段的数值的原子递增的操作命令
1 Redis Server
Windows 下载 Redis-x64-3.0.501.zip 解压,管理员权限使用cmd切换到解压后的目录下:
手动指定配置文件启动:redis-server.exe redis.windows.conf
也可以直接双击redis-server.exe启动
安装服务:redis-server.exe --service-install redis.windows.conf
卸载服务:redis-server --service-uninstall
开启服务:redis-server --service-start
停止服务:redis-server --service-stop
配置文件 redis.windows.conf
databases 可以设置db的数量,是大于0的任意整数,默认16
port 可以设置端口,默认6379
maxclients 设置最大连接数,默认10000
requirepass 设置连接密码
启动后是这样的:

注:建议安装RedisDesktopManager帮助学习
# coding=gbk
# 导入redis 模块
import redis
redis_pool = redis.ConnectionPool(
host='127.0.0.1',
port=6379,
db=0,
password='cbs123',
decode_responses=True
)
r = redis.Redis(connection_pool=redis_pool)
sr = redis.StrictRedis(connection_pool=redis_pool)
# 将键key设定为指定的"字符串"值
r.set("user:1000:message", "Hello World", ex=100)
sr.set("user:1001:message", "Hello World")
sr.set("user:1004:message", "Hello World", px=10000)
sr.set("user_1002_message", "Hello World")
# 获取key对应的数值
r.get("user:1000:message")
r.get("user:1001:message")
r.get("user_1002_message")
"""
> True
> True
> True
> Hello World
> Hello World
> Hello World
"""

# 导入redis 模块
import redis
redis_pool = redis.ConnectionPool(
host='127.0.0.1',
port=6379,
db=0,
password='cbs123',
decode_responses=True
)
r = redis.Redis(connection_pool=redis_pool)
# 通用操作 不区分 数据类型的
# EXISTS key 检查key值是否存在,成功返回1,不成功返回0(key对应的值不存在)
r.exists("user:1000:message")
r.exists("user:1002:message")
"""
> 1
> 0
"""
# TYPE key 返回key对应的值的类型,成功返回类型,不成功返回none(key对应的值不存在)
r.type("user:1000:message")
r.type("user:1002:message")
"""
> string
> none
"""
# TTL key 返回key对应的剩余存活时间,成功返回时长单位秒,不成功返回-1 key值不存在返回-2
r.ttl("user:1000:message")
r.ttl("user:1001:message")
r.ttl("user:1004:message")
r.ttl("user:1002:message")
"""
> 100
> -1
> 10
> -2
"""
# 设置超时时间,当时间到达后会被删除
# EXPIRE key seconds 超时时间,当时间到达后会被删除,单位秒
# PEXPIRE key milliseconds 超时时间,当时间到达后会被删除,单位毫秒
r.expire("user:1000:message", 10)
r.pexpire("user:1001:message", 10)
"""
> True
> False
> False
"""
# PERSIST key 删除key对应的超时时间,成功返回True,不成功返回False(key对应的值不存在)
r.persist("user:1000:message")
r.persist("user:1001:message")
r.persist("user:1002:message")
"""
> True
> False
> False
"""
# DEL key 删除key对应的值,成功返回1,不成功返回0(key对应的值不存在)
r.delete("user:1000:message")
r.delete("user:1002:message")
"""
> 1
> 0
"""
end
推荐阅读:

如有收获,点个在看,诚挚感谢




