redis概览
redis-基于内存实现的键值性非关系数据库
特点:
- 可以实现内存存储、持久化存储数据(到指定的磁盘文件)
- 支持丰富的数据类型
- master-slave同步数据:主机—主机进行同步数据
- 支持多种编程语言
- 可以远程连接
自带16个数据库;key检索value机制;通过各数据类型实现存储数据,代替了表
架构:服务端、客户端,服务端负责把数据缓存到内存
用途:缓存、消息对列、搭建redis集群
应用场景:经常被访问的数据、访问时会耗费大量资源的内容,放入redis;例如:缓存某个网页,降低网站的压力。
不足:理论上,每个key、value的大小不超过512MB
redis 怎么用?
下载redis安装包,使用cmd注册redis服务(端)到windows服务中;
redis.windows.conf里有some配置项
数据类型—5种
-
string:具有二进制安全特性---->指存取是按其二进制化后的数据
命令:set/get;Mset/Mget
一个字符串类型的值极限存储512MB -
hash散列:一般用来存储对象
实例:HMSET userid:1 username xiaoming password 123456 website www.biancheng.net
HGETALL查询全部字段
由字符串type的field—value组成的映射表
一个hash中最多包含2^32-1 个键值对。 -
List 列表:key—value都是字符串类型,允许value重复插入,最多可插入的元素个数
2^32-1
每次从头部或者尾部插入,有序
该列表遵循索引机制
实例:LPUSH dog wang
Lpush dog li
Lrange dog 0 2
输出:1)“wang”
2) “li” -
set集合:由字符串类型的元素组成的无序集合,不重复
是通过哈希映射表实现的,所以CUID:O(1)
可容纳2^32-1 个元素
实例:SADD dog wand
SADD dog li
smembers dog
输出:1)“li”
2) “wang” -
zset有序集合:字符串type构成,不重复,有序
每个元素会绑定一个double类型的值,可重复,用来为集合中的成员排序
实例:zadd dog 0 wang
zadd dog 1 li
zadd dog 1 fu
zrange dog 0 1 //输出zset中所有成员
输出:1)“wang”
2) “li”
3) “fu”
zscore dog li //查看指定成员的分值
输出 :“1”
key
redis通过some****命令****操作其,实现了对存储数据的管理
唯一,若有重复,后来的value覆盖原来的
可设置过期时间,到期自动删除 :1)避免使用频率不高的key长期占用内存;
2)控制缓存的失效时间
设置了过期时间的key存放在一个独立的字典里,redis会定时遍历这 个字典来删除key;
实例:some操作------>**序列化key对应的值**、expire key、将当前数据库里的key移动到指定的数据库、删除key的过期时间、修改key的名称、可以迭代数据库里存在的所有键scan cursor
举例:scan 0 //从0<--------游标的位置处 开始迭代
输出:1)"dog"
sscan ------>迭代集合键中的元素
hscan ------>迭代哈希键中的键值对
zscan ------>迭代有序集合键中的元素