目录
一、准备工作
安装redis非常简单,只需要下载压缩文件解压即可
链接:redis-latest.rar官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘
提取码:1024
下载完成后按照以下步骤开启服务
第一步:先找到解压的文件,可以选择在该文件夹内的导航栏输入cmd回车或者直接双击redis-server二选一打开终端
第二步:在终端输入 redis-server 开启服务
注意:这个窗口不能关闭
第三步:重开一个终端输入 redis-cli 【在导航栏输入的cmd打开的终端】
然后就可以在这里操作 redis数据库了
二、操作数据库
redis支持16个数据库(自带,不可减少或增加),编号从0到15,默认进入0号数据库,redis是以键值对存储的,与MySQL不同,没有表格概念,区分大小写
2.1 切换数据库
select 数据库编号 # 进入指定数据库
例如:进入 2 号数据库
select 1
2.2 存储和查看数据
一、存储语法
设置键值对:set 键 值
set s1 lysir
set s2 零一先生
注意:存储中文字符时,需在进入 Redis 时使用
redis-cli --raw
,否则显示乱码,但存储是成功的。
二、一次性存储多个键值对
语法:mset 键1 值1 键2 值2 ...
mset s3 AA s4 BB s5 CC
三、追加值
语法:append 键 追加的值
append s3 aa # 结果变为 AAaa
四、查看值的类型
语法:type 键
type s1
五、查询值
语法:get 键
get s1
六、一次查询多个值
语法:mget 键1 键2 ...
mget s1 s3 s5
七、查看当下数据库所有的键
语法:keys *
八、删除键
语法:del 键1 键2 ...
del s1 s3
九、查看 键 是否存在
语法:exists 键
返回值:存在返回 1
,不存在返回 0
。
exists s2
十、重命名键
语法:rename 旧键 新键
rename s2 new_s1
2.3 过期时间管理
当键超过设定的时间之后就会自动失效删除
设置键的过期时间
expire 键 时间(秒)
查看键的剩余生存时间
ttl 键
返回值:
-2
:键已过期
-1
:键不存在或未设置过期时间取消键的过期时间
persist 键
2.4 列表(Lists)
特点:有序、可重复、动态(可在两端添加)。
1、从左边插入数据
lpush 列表键 值1 值2 ... 值
示例:
lpush L1 A B C D lysir
2、从右边插入数据
rpush 列表键 值1 值2 ... 值N
示例:
rpush R1 E F G H lysir
3、查看列表内容
lrange 列表键 开始位置 结束位置
lrange L1 0 -1 # -1 表示到末尾
从左边删除一个元素
lpop 列表键
从右边删除一个元素
rpop 列表键
删除整个列表
del 列表键
4、获取指定索引的元素
lindex 列表键 索引
lindex R1 3
5、修改指定索引的元素值
lset 列表键 下标 值
lset L1 3 china
2.5 集合(Set)
特点:无序、唯一、动态。
1、添加元素到集合
sadd 集合键 值1 值2 ... 值N
示例:
sadd set1 v1 v2 v3 v4 v5
2、查看集合中所有成员
smembers 集合键
smembers set1
3、检查元素是否在集合中
sismember 集合键 值
返回值:存在返回 1
,不存在返回 0
。
sismember set1 v6
4、删除集合中的元素
srem 集合键 值1 值2 ...
srem set1 v1 v2 v5
2.6 有序集合(Sorted Set)
特点:有序(有下标)、唯一、每个元素关联一个分数(用于排序),动态。
1、添加元素到有序集合
zadd 键 分数1 值1 分数2 值2 ... 分数N 值N
zadd sset1 80 A 90 B 100 C 98 D 88 E
2、获取有序集合的元素
zrange 键 起始下标 结束下标
zrange sset1 0 -1 # -1 表示到末尾
3、获取有序集合的分数
zscore 键 值
zscore sset1 A
4、获取有序集合的元素及分数
正序查看:
zrange 键 起始下标 结束下标 withscores
zrange sset1 0 -1 withscores
倒序查看:
zrevrange 键 起始下标 结束下标 withscores
zrevrange sset1 0 -1 withscores
5、根据分数筛选查询
zrangebyscore 键 最小分数 最大分数
zrangebyscore sset1 80 90
6、修改指定成员的分数
zincrby 键 要修改的分数(正数是加 负数是减) 值
zincrby sset1 200 B
zincrby sset1 -50 C
7、删除有序集合中的元素
zrem 键 值1 值2 ... 值N
zrem sset1 A C D
2.7 哈希(Hash)
特点:键值对存储(一个键对应多个值),无序、动态。
1、单个设置
语法:hset 哈希键 字段 值
2、多个设置
hmset 哈希键 字段1 值1 字段2 值2 ...
hmset HXuser name zhou age 18 msg xxx
3、获取哈希表的值
获取单个值:
hget 哈希键 字段
获取多个值:
hmget 哈希键 字段1 字段2 ...
hmget HXuser name age msg
4、获取哈希表所有 字段 及 值
获取所有值:
hvals 哈希键
获取所有字段:
hkeys 哈希键
获取所有键值:
hgetall 哈希键
hgetall HXuser
5、检查哈希表中是否存 在 某个字段
hexists 哈希键 字段
返回值:存在返回 1
,不存在返回 0
。
hexists HXuser china
7、删除哈希表 字段
hdel 哈希键 字段1 字段2 ...
返回值:实际删除的字段数量。
hdel HXuser age msg
三、公共操作
查看所有键
keys *
清空当前数据库
flushdb
清空所有数据库
flushall
注意:此操作不可逆,会清空所有 16 个数据库的数据。
特别注意
Redis 数据默认存储在内存中,服务关闭后数据会丢失。若需持久化存储,请查阅相关文档。
四、redis与python交互
redis并不是内置模块,所以需要先下载 redis 模块
安装Redis库:
pip install redis -i https://mirrors.aliyun.com/pypi/simple/
下面是python与redis交互演示代码
# 1 导包
import redis
# 2建立连接
db_con = {
'host':'127.0.0.1', #主机
'port':6379, # 端口
'db':0 #连接哪个数据库
}
# 3连接Ridis服务器(会返回一个连接对象)
r = redis.Redis(**db_con)
print(r)
# 4对数据库进行操作
# 设置键值对=> r.set('key1','value1')
#a.新增
r.set('name','tonny')
#b.查询(获取)
name = r.get('name')
print(name)
#其他操作也都可以通过 r.出来(点出来)
# 5最后记得关闭连接
r.close()
温馨提示:
1,必须确保 redis 服务器正常开启了,否则会连接失败
2,redis 端口号可以在开启服务器的界面查看