1.Redis数据库
Redis是一个开源的高性能键值存储数据库,类似字典。通常用作缓存、消息队列和数据存储等用途。mysql,mongodb都是以文件形式存储在磁盘上的,redis数据存在内存中,操作内存的速度远远高于磁盘,并且redis数据最终也可以存储在磁盘上。
Redis支持多种数据结构,包括字符串、列表、哈希、集合和有序集合等。
2.Redis配置文件
dbfilename | 数据文件 |
requirepass | 用户密码 |
masterauth | 主机密码 |
logofile | 日志文件 |
port | 端口号6379 |
databases | 数据库,默认16个,可以更改 |
logolevel | 日志等级 |
bind | 绑定ip |
redis启动服务器:redis-sever 配置文件路径
客户端连接服务器:redis-cli:-h 主机ip、-a 密码
获取配置信息:config get *,获取所有配置;获取单个配置,config get requirepass。
配置用户密码:config set requirepass 123456,配置完成,输入auth 123456,客户端才可以访问;但是在客户端修改用户密码是一次性的,永久配置需要再配置文件中修改。
3.Redis键操作(python环境下的操作)
keys() | 返回所有键 |
exists(k) | 查看键是否存在 |
expire(k, time) | 给键设置有效期 |
ttl(k) | 查看键存在的剩余时间 |
type(k) | 查看键对应值的类型 |
delete(k) | 删除键 |
4.Redis数据库5种数据类型的操作方法(python环境下的操作)
Redis5中数据类型:
字符串:字符串是最基本的数据结构,可以存储任意类型的数据。
列表:Redis的列表是一个有序的字符串元素集合,可以在列表的两端执行插入和删除操作。
哈希: Redis的哈希是一个键值对的集合,适用于存储对象。
集合:Redis的集合是一个无序的字符串元素集合,且元素不重复。
有序集合:Redis的有序集合是一个有序的字符串元素集合,每个元素关联一个分数,通过分数进行排序。
字符串操作方法:
set(k, v) | 设置单个 |
get(k) | 获取单个 |
mset({k:v, k:v}) | 设置多个 |
mget(k, k, k,) | 获取多个 |
incr(k) | 加1 |
incrby(k, 增量) | 加增量 |
decr(k) | 减1 |
decrby(k, 增量) | 减增量 |
setex(k, time, v) | 设置带有有效期的键值 |
setnx(k, v) | 不存在则插入,存在不插入,不会覆盖已存在的内容 |
append(k, v) | 将指定值追加到指定键的值的末尾 |
strlen(k) | 获取键的长度 |
列表操作方法:
lpush(k, v,v,v) | 在开头插入 |
rpush(k, v, v) | 在末尾插入 |
lpop(k) | 删除开头的元素 |
rpop(k) | 删除结尾的元素 |
linsert(key, after|before, pivot, value) | 在指定位置插入指定元素 |
lrem(key, count, value) | 删除指定个数的指定值 |
ltrim(key, start, stop) | 将原始内容切片 |
lrange(key, start, end) | 返回对应范围内的所有元素 |
lindex(key, index) | 返回对应位置的元素 |
哈希操作方法:
hset(name, k, v) | 存储一个 |
hget(name,k) | 获取一个 |
hmset(name, {k1: v1, k2: v2}) | 存储多个 |
hmget(name, [k1, k2,...]) | 获取多个 |
hincrby(name, k, 增量) | 加增量 |
hgetall(name) | 找到键下的所有字段及字段对应值 |
hkeys(name) | 获取键下的所有字段 |
hvals(name) | 获取所有字段的值 |
hexists(name, key) | 字段是否存在 |
hdel(name, key) | 删除字段 |
hlen(name) | 获取键的字段数量 |
集合操作方法:
sadd(name, *vlues) | 多个数据插入集合 |
scard(key) | 获取集合中元素个数 |
smembers(key) | 返回集合中所有元素 |
srandmember(key) | 随机取一个 |
srem(key, value) | 删除指定元素 |
spop(key) | 随机删除一个 |
sismember(key, value) | 元素是否在集合中 |
sinter([k, k]) | 交集 |
sunion([k, k]) | 并集 |
sdiff([k, k]) | 差集 |
有序集合操作方法:
zadd(name, {v:score}) | 添加带有权重的元素 |
zcard(name) | 获取键下的元素个数 |
zcount(name, min, max) | 权重在min,max范围内元素的个数 |
zrange(name, start, stop) | 获取指定索引对应的元素 |
zrevrange(name, start, stop) | 逆序获取指定索引对应的元素 |
zrangebyscore(name, min, max) | 获取指定权重范围内的元素 |
zrevrangebyscore(name, max, min) | 逆序获取指定权重范围内的元素 |
zscore(name, value) | 获取指定v对应的权重 |
zrem(name, v, v) | 删除指定值 |
5.python与redis数据库交互
导入模块:首先安装第三方模块,使用pip命令,pip install redis
安装完成后,import redis
构建连接:client = redis.StrictRedis(password="密码"),设置了密码时必须要写上密码。
对数据进行增删改查
释放连接:client.close()
示例代码,以字符串操作为例:
# 导入模块
import redis
# 构建连接
client = redis.StrictRedis(password="123456")
# 1.字符串操作方法
# # 设置单个,set(k, v)
# res = client.set("s2", "hello python")
# # 执行成功,返回True
# print(res)
# 获取单个,get(k),返回对应值
# res = client.get("s2")
# print(res)
# 设置多个,mset({k:v, k:v})
# res = client.mset({"s3": "hi", "s4": "wake", "s5": 50})
# print(res)
# 获取多个,mget(k, k, k,)
# res = client.mget("s2", "s3", "s4", "s5")
# print(res)
# 加1,incr(k)
# res = client.incr("s5")
# print(res)
# 加增量,incrby(k, 增量)
# res = client.incrby("s5", 10)
# print(res)
# 减1,decr(k)
# res = client.decr("s5")
# print(res)
# 减增量,decrby(k, 增量)
# res = client.decrby("s5", 10)
# print(res)
# 设置带有有效期的键值,setex(k, time, v)
# res = client.setex("s6", 20, "time")
# print(res)
# 不存在则插入,存在不插入,不会覆盖已存在的内容,setnx(k, v)
# res = client.setnx("s4", 100)
# print(res)
# 将指定值追加到指定键的值的末尾,append(k, v)
# res = client.append("s4", "hello")
# print(res)
# 获取键的长度,strlen(k)
# res = client.strlen("s4")
# print(res)
# 关闭连接
client.close()
小结
redis在命令行窗口的操作方法与在python环境下的是有许多不同的,本文主要的操作方法都是基于python环境下运行的。
标签:name,--,res,元素,Redis,就够,获取,client,key From: https://blog.csdn.net/weixin_65436886/article/details/136661774