掌握Redis,看完这篇文章就够了!

目录

1.Redis介绍

2.Redis服务器与客户端

3.Redis配置文件

4.Redis数据类型操作

4.1使用python连接数据库

4.2 字符串

4.3 哈希

4.4 键对应操作

4.5 列表

4.6 集合

4.7 有序集合


1.Redis介绍

Redis 是一个开源的内存数据库,它提供了一个高性能的 key-value 存储系统,并支持多种数据结构(如字符串、哈希表、列表、集合等)。Redis 除了支持持久化外,还提供了复制、高可用和集群功能,使其成为一款非常流行的 NoSQL 数据库。

在实际应用中,Redis 被广泛用于缓存、会话存储、消息队列等场景,以提升系统性能和扩展性。由于其快速的读写速度和丰富的数据类型支持,Redis 在 Web 开发和大数据领域有着广泛的应用。

MySQL,MongoDB都是以文件的形式存储在磁盘上的;Redis数据在内存中,操作内存的速度远远高于磁盘,并且Redis数据最终也可以存储在磁盘上。Redis通过键值存储数据库,类似字典。

2.Redis服务器与客户端

1.启动服务器:

在黑窗口输入以下代码启动服务器,前提是电脑任务管理器中Redis服务是关闭的。

redis-server "D:\Program Files\Redis\redis.windows.conf"

2.客户端连接服务器

连接服务器,输入以下代码,-h后加主机IP,-a后加密码。默认无密码。

redis-cli -a 123456

3.Redis配置文件

1.获取配置信息

config get *

2.配置某个信息

这里我将用户密码设置为123456,因此上方客户端连接时需要输入密码

config get requirepass

config set requirepass 123456

3.常见配置项

  1. dbfilename, 数据文件
  2. requirepass ,用户密码
  3. masterauth,主机密码
  4. logfile, 日志文件
  5. port,端口号6379
  6. database,数据库,默认16个
  7. loglevel,日志等级
  8. bind,绑定IP
  9. 保存时间
    1. save  time changecount
    2. save 900 1 ,修改一个15分钟以后保存
    3. save 60 10000,修改达到一万个 1分钟保存

4.Redis数据类型操作

Redis有以下五种数据类型

(1)字符串

(2)哈希

(3)列表

(4)集合

(5)有序集合

4.1使用python连接数据库

1.导入Redis模块

在终端输入以下语句

pip install redis

2.连接

import redis
client = redis.StrictRedis()


client.close()

4.2 字符串

在 Redis 中,字符串是最简单的数据结构之一,它可以存储最基本的数据类型,即一个键对应一个值。在 Redis 中,字符串不仅可以存储文本数据,还可以存储数字、二进制数据等。

常用操作如下:

(1)设置单个键值

r = client.set("s1", "hello world")
print(r)

(2)获取单个值

r = client.get("s1")
print(r)

(3)设置多个键值

r = client.mset({"s1": "v1", "s2": "v2"})
print(r)

(4)获取多个键值

r = client.mget("s1", "k1", "k2")
print(r)

(5)加增量1

r = client.set("s2", 100)
print(r)

r = client.incr("s2")
print(r)

(6)指定增量

r = client.incrby("s2", 10)
print(r)

(7)减1,减指定增量

r = client.decr("s2")
print(r)

r = client.decrby("s2", 5)
print(r)

(8)设置某个键值带有有效期。查看某个键的有效期

长期有效,有效期为-1

r = client.expire("s2", 50)
print(r)

r = client.ttl("s2")
print(r)
r = client.ttl("s1")
print(r)

(9)拼接,在原始数据后拼接

r = client.append("s1", "abcd")
print(r)

r = client.mget("s1")
print(r)

4.3 哈希

哈希存储键值对。

常用操作:

(1)hget(name, key)获取键对应的值

r = client.hget("h1", "k1")
print(r)

(2)hset(name, key, value)添加键值对

r = client.hset("h1", "k1", "v1")
print(r)

(3)hmset(name, {})添加多个键值对

r = client.hmset("h1", {"k2":"v2", "k3":"v3", "k4":"v4"})
print(r)

(4)hmget(name, [key])获取列表中字段对应的值

r = client.hmget("h1", ["k1", "k2", "k3"])
print(r)

(5)hincrby(name,  key, value)字段的值 增加增量

r = client.hincrby("h1", "k5", 10)
print(r)


(6)hgetall(name) 所有字段与值

r = client.hgetall("h1")
print(r)

(7)hkeys(name) 所有的字段    hvals(name) 所有字段的值

r = client.hkeys("h1")
print(r)
r = client.hvals("h1")
print(r)

(8)hexists(name, key)判断字段是否存在

r = client.hexists("h1", "k1")
print(r)
r = client.hexists("h1", "k99")
print(r)

(9)hdel(name, key) 删除字段

r = client.hdel("h1", "k5")
print(r)

(10)hlen(neme, key) 返回字段长度

r = client.hlen("h1")
print(r)

4.4 键对应操作

(1)keys()返回所有键

(2)exists(k)查看键是否存在, 0为不存在  1为存在

r = client.exists("s1")
print(r)

(3)type(k)查看键对应值的类型

r = client.type("s1")
print(r)

(4)expire(k, time)设置有效期

r = client.expire("s3", 50)
print(r)

(5)ttl(k)查看剩余时间,  -1为永久, -2为不存在的键

r = client.ttl("s8")
print(r)

(6)delete(k)删除键

r = client.delete("s8")
print(r)

4.5 列表

(1)lpush(k, v)开头插入

r = client.lpush("l1", 100)
print(r)

(2)rpush(k, v)末尾插入

r = client.rpush("l1", 50)
print(r)

(3)lpop(v) 开头删除

r = client.lpop("l1", 100)
print(r)

(4)rpop(v)末尾删除

r = client.rpop("l1", 50)
print(r)

(5)lset(k, index, v)修改指定位置额指定元素

r = client.lset("l1", 1, "50")
print(r)

(6)linsert(key, after\before, pivot, value)在指定位置插入指定元素

r = client.linsert("l1", "after", "120", "150")
print(r)
r = client.linsert("l1", "before", "50", "500")
print(r)

(7)lrem(key, count, value) 删除指定个数的指定元素

r = client.lrem("l1", 0, 1)
print(r)

(8)ltrim(key, start, stop)把原始位置切片

r = client.ltrim("l1", 0, 1)
print(r)

(9)lrange(key, start, end)返回对应位置范围所有元素

r = client.lrange("l1", 0, 1)
print(r)

(10)lindex(key, index) 返回对应位置的元素

r = client.lindex("l1", 0)
print(r)

4.6 集合

(1)sadd(key, *values)将多个数据插入集合

r = client.sadd("set2", 100, 500, 200, 300, 400, 100, 200)
print(r)

(2)srem(key, value)移除指定value

r = client.srem("set2", 100)
print(r)

(3)spop(key)随机移除

r = client.spop("set2")
print(r)

(4)srandmenber(key,count)随机取count个,不删除

r = client.srandmember("set2", 2)
print(r)

(5)scard(key)集合中元素个数

r = client.scard("set2")
print(r)

(6)smembers(key)返回所有元素

r = client.smembers("set2")
print(r)

(7)sismember(key, value)value是否在集合中

r = client.sismember("set2", "600")
print(r)

(8)sinter([key1,key2])返回交集

r = client.sinter(["set2", "set3"])
print(r)

(9)sinterstore(key3, [key1, key2])将返回的交集存储到集合

r = client.sinterstore("set4", ["set2", "set3"])
print(r)

(10)sunion([key1, key2])    返回并集

r = client.sunion(["set2", "set3"])
print(r)

(11)sunionstore(key3, [key1, key2])将返回的并集存储到集合

r = client.sunionstore("set5", ["set2", "set3"])
print(r)

(12)sdiff([key1, key2])返回差集

r = client.sdiff(["set2", "set3"])
print(r)

(13)sdiffstore(key3, [key1, key2])  将返回的差集存储到集合

r = client.sdiffstore("set6", ["set2", "set3"])
print(r)

4.7 有序集合

(1)zadd(name, {v, score}),添加带有权重的元素

r = client.zadd("zset2", {"v1": 10, "v2": 20, "v3": 30, "v4": 40, "v5": 50})
print(r)

(2)zrem(name, v, v),从有序集合中移除

r = client.zrem("zset2", "v1")
print(r)

(3)zcard(name),个数

r = client.zcard("zset2")
print(r)

(4)zcount(name, min, max),权重在min到max之间元素个数

r = client.zcount("zset2", 10, 30)
print(r)

(5)zrange(name, start, stop),获取指定索引范围元素

r = client.zrange("zset2", 0, 3, withscores=True)
print(r)

(6)zrevrange(name, start, stop),逆序获取指定索引范围元素,withscores=True显示分数

r = client.zrevrange("zset2", 0, 2, withscores=True)
print(r)

(7)zrangebyscore(name, min, max),获取制定分值对应元素

r = client.zrangebyscore("zset2", 10, 100, withscores=True)
print(r)

(8)zrevrangescore(name, max, min),逆序获取制定分值对应元素

r = client.zrevrangescore("zset2", "v5")
print(r)

(9)zscore(name, value),获取value对应的权重

r = client.zscore("zset2", "v5")
print(r)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火爆辣椒abc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值