目录
一、Redis简介和常用命令
1、Reids简介
- redis:非关系型数据库
- 使用键值对存储数据
- 存储的时候是单条数据,并且数据之间没有联系。
2、redis常用命令
- redis命令可参考以下文档
Redis 命令参考 — Redis 命令参考http://doc.redisfans.com/
-
进入redis
命令:redis-cli
-
查看数据库版本
命令:redis-cli -v
-
切换数据库
- redis的数据库默认有16个,通过0~15来标识,默认值选择第一个数据库
例(切换到第三个数据库):select 2
- select 后面是下标,注意命令结尾不加分号;
-
退出redis
命令:exit
二、全面key操作
1、查看当前数据有哪些键
命令:keys *
2、创建数据
命令:set 键名 值
3、获取数据
命令:get 键名
4、获取数据如果显示是十六进制,那么重新进入redis
命令:redis-cli --raw
- 例如:创建一个a2键,并向里面写入中文数据“大海”,并读取数据,发现数据被写为了十六进制
- 先退出redis,输入exit后回车
- 然后再次进入数据,输入命令:redis-cli --raw
- 接着进入第三个数据库,重新查看a2的值 ,这时我们才能读取到中文数据
5、查看key是否存在
- 存在返回1,不存在返回0
命令:exists key
6、查看名称中包含a的key
命令:keys a*
7、查看key的值的类型
命令:type 键名
8、设置键的过期时间和查看过期时间
设置键的过期时间的命令:expire 键名 seconds (以秒为单位)
查看过期时间的命令:ttl 键名 (没有数据就返回 -2)
- 设置键的过期时间后,当了过期时间,该键自动会被系统删除
三、五种数据类型的增删改查
1、string — 字符串
-
创建一个字符串
命令:set 键名 值
-
添加数据
命令:append 键名 值 (在已有的数据后追加数据,返回值表示键中有的字符个数)
-
删除数据
命令:del 键名
-
设置多个键值
命令:meset 键1 值1 键2 值2 键3 值3……
-
获取多个值
命令:mget 键1 键2 键3……
-
删除多个键
命令:del 键1 键2 键3……
2、list—列表
-
创建列表和添加数据
- 执行添加数据的操作时会自动创建列表
左侧添加命令:lpush 键名 值 (lpush表示从左侧添加数据)
右侧添加命令:rpush 键名 值 (rpush表示从右侧添加数据)
p1键相当于:p1 = ['hallo']
-
查看数据
命令:lrange 键名 开始下标 结束下标 (从左边开始读取数据)
-
查看某个数据
命令:lindex 键名 下标
-
插入多条数据
命令:lpush 键名 值1 值2 值3 ……
注意:rpush的插入多条数据的形式和lpush相同
- 插入多个数据过程解析:rpush p1 1 2 3 4,从右侧将数据插入
-
删除数据
从后面开始删除(右边):rpop 键名
从前面开始删除(左边):lpop 键名
删除后返回的是删除的数据
3、hash类型—哈希
-
创建hash类型
例:hset h1 a 1
(这是键值对的嵌套:h1是键名,a是h1的值,而a是1的键名,1是a的值)
-
查看所有hash类型中的值
例:hgetall h1
-
查看hash类型中的单个值
例:hset h1 a
-
查询所有的值
例:hvals h1
注意:对于h1的内部来说,a是键,不是值
-
查询所有的键
例:hkeys h1
4、set—集合
集合的特点:无序,元素唯一,不重复。
-
创建集合和添加数据
- 添加数据时就会自动创建集合
命令:sadd 键名 值
-
查看集合中的数据
命令:smembers 键名
-
删除数据
命令:spop 键名 (随即删除,返回的是删除的值)
-
指定删除
命令:srem 键名 值1 值2 …… (可删除一个或多个,返回的结果是删除的个数)
- 先向集合中写入几个数据
- 指定删除数据
5、zset—有序集合
有序集合的简单理解:每位成员(member)都会有一个分数,与关联成员是唯一的,分数是可以重复的。
-
创建有序集合和添加数据
- 添加数据时就会自动创建有序集合
例:zadd 键名 10 zs (10是分数,zs是成员)
-
查看数据 (查看成员)
- 先向有序集合中写入两个数据
查看数据:zrange z1 0 10 (0是开始下标,10是结束下标)
-
通过分值去查看成员
例:zrangebyscore z1 1 20
(1是分数的最小值,20是分数的最大值,即查找分数在[1,20]的成员)
四、redis与python交互
在python中需要下载的模块:pip install redis
2、代码演示
例:在python中实现在redis的第二个数据库,创建一个表
- 先查看第二个数据库中的表
- 利用python在redis中创建一个键
- 最后在redis中查看
1、附源代码
import redis
#连接redis数据库
#写入的KV对中V为string类型,不加则写入的为字节类型,设置decod_response=True 表示写入的类型是str
pool = redis.ConnectionPool(host='127.0.0.1', port=6379, db=1, decode_response=True)
st = redis.Redis(connection_pool=pool)
# 创建一个键
st.set('python', 'So nice') # python是键名,So nice是值
print(st.get('python')) # 获取python键中的值