文章目录👨💻博客主页:i新木优子👀
🎉欢迎关注🔍点赞👍收藏⭐留言📝
🧚♂️寄语:风雨阴晴任变迁,心平志坚终有成👣
🙏作者水平有限,发现错误欢迎留言轰炸
- 一、Redis的安装
- 二、Redis的 *** 作
- 三、彩蛋✨
- 1. python连接redis
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
一、Redis的安装Redis作为一款目前这个星球上性能最高的非关系型数据库之一. 拥有每秒近十万次的读写能力. 其能力只能用恐怖来形容.
Redis的安装包可以去我的主页资源中去下载
1️⃣解压压缩包,解压完毕之后如下图:
2️⃣配置PATH环境变量
复制解压路径
右击此电脑点击属性点击高级系统设置
3️⃣用记事本打开 redis.windows.conf
-
关闭bind
# bind 127.0.0.1 ::1 # 注释掉它
-
关闭保护模式 windows不用设置
protected-mode no # 设置为no
-
设置密码
requirepass 123456 # 设置密码
温馨提示:不要忘记保存哦
4️⃣将redis添加到windows服务必须进入到redis目录后才可以
# 将redis安装到windows服务
redis-server.exe --service-install redis.windows.conf --loglevel verbose
# 卸载服务:
redis-server --service-uninstall
# 开启服务:
redis-server --service-start
# 停止服务:
redis-server --service-stop
步骤如下图:
到这里Redis就已经安装成功,并且可以启动
RDM(redis desktop manager)可以帮我们完成redis数据库的可视化 *** 作(需要就装, 不需要就算了, windows建议安装)
RDM的安装非常简单,就是傻瓜式的下一步即可,可以更改路径
接下来就是RDM的使用步骤:
这16个随便选,哪一个都可以
-
整个redis的数据库可以看做一个超大号的大字典
redis中常见的数据类型有5个.命令规则:
命令 key 参数
-
string
字符串,redis最基础的数据类型.
相当于python中的{key:value},只不过redis使用空格分隔
常用命令
set key value # 添加一条数据 get key # 查看一条数据 incr key # 让该key对应的数据自增1(原子性, 安全) incrby key count # 让该key对应的value自增 count type key # 查看数据类型(set进去的东西一律全是字符串)
例如
set name zhangsan # 添加数据 name = zhangsan get name # 查看数据 zhangsan set age 10 get age # 10 incr age # 11 get age # 11 incrby age 5 # 16
-
hash(哈希)
相当于python中的{key:{key1:val1,key2:val2}},只不过redis使用空格分隔
常见 *** 作
hset key k1 v1 # 将k1, v1存储在key上 hget key k1 # 将key上的k1提取出来 hmset key k1 v1 k2 v2 k3 v3.... # 一次性将多个k,v存储在key hmget key k1 k2....# 一次性将key中的k1, k2...提取出来 hgetall key # 一次性将key中所有内容全部提取 hkeys key # 将key中所有的k全部提取 hvals key # 将key中所有的v全部提取
示例:
HMSET stu id 1 name yeti age 18 HMGET stu name age # yeti 18 HGETALL stu # id 1 name yeti age 18 HKEYS stu # id name age HVALS stu # 1 syalr 18
-
list
列表, 底层是一个双向链表. 可以从左边和右边进行插入. 每次插入时都要记得这是一个双向链表
相当于python中的{key:[val1, val2, val3]},只不过redis使用空格分隔
常见 *** 作
LPUSH key 数据1 数据2 数据3.... # 从左边插入数据 RPUSH key 数据1 数据2 数据3.... # 从右边插入数据 LRANGE key start stop # 从start到stop提取数据. LLEN key # 返回key对应列表的长度 LPOP key # 从左边删除一个.并返回被删除元素 RPOP key # 从右边删除一个.并返回被删除元素
示例:
LPUSH banji yiban erban sanban siban LRANGE banji 0 -1 # yiban erban sanban siban RPUSH ban ban1 ban2 ban3 LRANGE ban 0 -1 # ban1 ban2 ban3 LPOP ban # ban1 LLEN key # 2
-
set
set是无序的超大集合. 无序, 不重复.
常见 *** 作
SADD key 值 # 向集合内存入数据 SMEMBERS key # 查看集合内所有元素 SCARD key # 查看key中元素的个数 SISMEMBER key val # 查看key中是否包含val SUNION key1 key2 # 并集 SDIFF key1 key2 # 差集合, 在key1中, 但不在key2中的数据 SINTER key1 key2 # 计算交集, 在key1和key2中都出现了的 SPOP key # 随机从key中删除一个数据 SRANDMEMBER key count # 随机从key中查询count个数据
实例:
SADD stars 刘亦菲 杨幂 迪丽热巴 新木优子 # 4 SADD stars 杨幂 # 0. 重复的数据是存储不进去的. SMEMBERS stars # 刘亦菲 杨幂 迪丽热巴 新木优子 SISMEMBER stars 杨幂 # 1 在 0 不在 SADD my 周杰伦 杨幂 新木优子 SINTER stars my # 计算交集 杨幂 新木优子 SPOP my # 随机删除一个 SRANDMEMEBER my 2 # 从集合总随机查看2个
-
zset
有序集合, 有序集合中的内容也是不可以重复的. 并且存储的数据也是redis最基础的string数据. 但是在存储数据的同时还增加了一个score. 表示分值. redis就是通过score作为排序的规则的.
常用 *** 作
ZADD key s1 m1 s2 m2 ... # 向key中存入 m1 m2 分数分别为s1 s2 ZRANGE key start stop [withscores] # 查看从start 到stop中的所有数据 [是否要分数] ZREVRANGE key start stop # 倒叙查看start到stop的数据 ZCARD key # 查看zset的数据个数 ZCOUNT key min max # 查看分数在min和max之间的数据量 ZINCRBY key score member # 将key中member的分值score ZSCORE key m # 查看key中m的分值
示例:
ZADD fam 1 sylar 2 alex 3 tory # 添加三个数据 ZRANGE fam 0 -1 WITHSCORES # 正序查看 ZREVRANGE fam 0 -1 WITHSCORES # 倒叙查看 ZINCRBY fam 10 yeti # 给yeti加10分 ZADD fam 100 yeti # 给yeti修改分数为100分 ZSCORE fam yeti # 查看yeti的分数 ZCARD fam # 查看fam的数据个数
-
温馨提示: 数据保存完一定要save一下, 避免数据没有写入硬盘而产生数据丢失
三、彩蛋✨ 1. python连接redis python处理redis使用专用的redis模块. 需要安装.
pip install redis
获取连接(1)
from redis import Redis
red = Redis(host="127.0.0.1", # 地址
port=6379, # 端口
db=0, # 数据库
password=123456, # 密码
decode_responses=True) # 是否自动解码
获取连接(2)
pool = redis.ConnectionPool(
host="127.0.0.1", # 地址
port=6379, # 端口
db=0, # 数据库
password=123456, # 密码
decode_responses=True
)
r = redis.Redis(connection_pool=pool)
print(r.keys())
python中的 *** 作的redis中的 *** 作非常相像
import redis
red = redis.Redis(
host="127.0.0.1",
port=6379,
password="123456",
db=1, # 选择数据库编号
decode_responses=True
)
# red.set("name", "小白")
# red.save()
# r = red.get("name")
# print(r)
# red.hset("xiao", "bai", "新")
# red.hset("xiao", "age", 18)
# red.save()
# r = red.hmget("xiao", "bai", "age")
# print(r)
# r = red.hgetall("xiao")
# print(r)
# red.lpush("stu", "新木优子", "刘亦菲", "杨幂")
# red.save()
# r = red.lrange("stu", 0, -1)
# print(r)
# red.sadd("teachers", "古力娜扎", "迪丽热巴", "蜡笔小新")
# red.save()
# r = red.smembers("teachers")
# print(r)
# red.zadd("ren", {"刘亦菲": 10, "杨幂": 15, "杨颖": 5})
# red.save()
# r = red.zrange("ren", 0, -1)
# print(r)
r = red.zrange("ren", 0, -1, withscores=True)
print(r)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)