数据库基础--Redis知识体系(掌握Redis,看完这篇文章就够了!)

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环境下运行的。

  • 18
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值