Redis简介
- 百科:Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
- 说明:是一个非关系型数据库,经常会用作缓存,消息中间件的操作
- 网址:www.redis.cn 中文网站
- 优势(面试)
- 存储既可以在内存中,也可以持久化存储
- 数据类型非常丰富,字符串,哈希,列表,集合,有序集合等
- 端口:6379 MYSQL 3306 HTTP:80 HTTPS:443 SSH:22 FTP:21
redis 安装
-
命令安装:sudo apt-get install redis-server,版本比较低,客户端没有提示信息
-
源码安装:可以选择哪一个版本
https://www.cnblogs.com/mayyan/p/7717994.html
-
windows下面启动redis
redis-server redis.windows.conf#启动redis服务器
-
使用
redis-cli.exe#启动客户端
-
给大家推荐一个可视化工具
redisplus
redis常用命令
-
管理命令
命令 说明 ping 测试连接情况,默认回复一个pong exit/quit 退出客户端 auth 身份认证 config 配置命令,用来查看选项或者设置相关配置的 info 查看redis服务器相关信息 command 查看可用的命令 select 选择库0-15,默认的是在0数据库下面 flushdb 清空当前的库,慎用 flushall 清空所有的库,特别慎用 save 前台执行持久化的时候使用(会阻塞) bgsave 后台执行持久化操作(不会阻塞) -
keys(键)
命令 说明 exists 判断指定的键是否存在,如果存在返回1,不存在返回0 keys 查看指定格式的键,*表示模糊匹配 del 删除指定的键 ttl 查看指定的键剩余的有效时间,-1表示永久有效,-2表示键不存在,单位为秒 expire 设置指定的有效时间,单位是秒(重要) persist 删除指定键的有效时间,之后变成永久的 move 将指定的键移动到指定的库 rename 修改指定键的名字 -
字符串
命令 说明 set 设置键值对的数据 get 通过键值获取值 mset 设置多对的键值对 mget 获取多对的键值对 getset 设置键值对,并返回原来的值 setex 设置键并设置过期时间 append 键值对追加内容,如果没有的话就设置值 strlen 返回指定字符串的长度 incr 数字值加1 decr 数字值减1 incrby 数字值加上一个指定的数 decrby 数字值减去一个指定的数
mysql想要在windows黑屏终端打开需要设置环境变量
-
1.要找到mysql.exe的应用程序(也就是安装好的mysql),复制这个应用程序的路径
例如(C:\Program Files\MySQL\MySQL Server 5.7\bin)
-
2.右键-》系统属性-》高级系统设置-》环境变量-》系统变量-》path在后面追加上面复制的路径
-
3.重新打开终端即可。
数据的结构的说明
-
结构化数据:就是表数据
-
半结构化数据:xml和json
-
非结构化数据:图片,音频,视频
-
哈希 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
命令 说明 hset 设置单个字段 hget 获取单个字段 hmset 设置多个字段 hmget 获取多个字段 hgetall 获取所有字段 hexsits 判断某个键是否有有某一个字段 hlen 获取指定键的字段的数量 hdel 删除指定键的指定字段 hkeys 获取所有的字段名字 hvals 获取所有字段的值 hincrby 指定键的指定字段加上一个整数 hincrbyfloat 指定键的指定字段加上一个浮点数 -
列表(list)
命令 说明 lpush 从左边(头部)插入数据 lpop 从左边(头部)弹出来数据 lrange 获取指定区间的数据,0表示的是开头,-1表示的是非常大的范围 lindex 根据下标获取数据 llen 统计元素的个数 lset 修改指定下标的值 lrem 删除个数的指定值 linsert 在指定元素前或者后插入数据 ltrim 修剪列元素,保留开始到结束的区间,删除掉 rpush 从右边插入数据 rpop 从右边弹出来数据 -
set(集合) Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
命令 说明 sadd 向集合中添加成员 smembers 查看集合中所有的的成员 scard 统计集合中成员的数量 sismember 判断某个成员是否在集合当中 spop 随机弹出并删除指定个数的成员,默认是1 srandmember 随机返回指定个数的元素,默认返回是1 srem 删除指定的元素,可以一次性删除多个 smove 将一个集合中的成员移动到另外一个集合中 sinter 求交集 sinterstore 求交集并保存到指定的集合中 sdiff 求并集减去交集 sdiffstore 求并集减去交集,并保存到指定的集合中 sunion 求并集 sunionstore 求并集并保存到指定的集合中 -
有序集合(sorted set)
-
说明:有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
命令 说明 zadd 添加数据到有序集合 zcard 统计集合中的数量 zcount 统计指定区间范围的元素的个数 zrange 返回指定索引范围的一个元素,升序排序 zrevrange 返回指定索引范围的一个元素,降序排序 zrangebyscore 返回指定分数范围的元素,并升序排序 zrank 返回指定元素的索引,升序的 zrevrank 返回指定元素的索引,降序的 zrem 删除指定的元素可以一次性删除多个 zscore 返指定元素的分数
-
-
事务操作
命令 说明 multi 开启事务 exec 执行事务 discard 取消事务 -
f发布订阅:发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
命令 说明 subscribe 订阅一个频道或者多个频道 unsubscribe 取消订阅频道 publish 向指定的频道发送消息 pubsub 查看活跃的频道信息
持久化存储
-
RDB:redis database 默认是开启的
-
配置
dbfilename dump.rdb #保存数据的文件名字 save 900 1 #更改了1个key,900s会自动保存 save 300 10 #更改了10个key,300s 会自动保存 save 60 10000 #更改了10000个key,60s 会自动保存
-
说明:
- 服务器关闭以后会自动保存
- 启动的时候数据会自动恢复
-
python链接redis数据库
re = redis.Redis(host="localhost",post=6370,password=123456)