redis入门

特点:
内存存储 速度极快
通常是以key-value形式存储
不支持sql语句 没有表结构
优点:
高并发读写性能
大量的数据拓展(分布式存储)
配置简单
灵活、高效的操作和数据模型
不足:
没有统一的标准
没有正式的官方支持
各种产品还不算成熟
五种数据类型 键值对数据库 字符串 列表 散列 集合 有序集合
丰富的附加功能:
持久化功能:将存储在内存中的数据保存到硬盘,保障数据安全,方便进行数据备份和恢复
发布和订阅功能:将消息同时分发给多个客户端,用于构建广播系统
过期键功能:为键设置一个过期时间,让它在指定的时间之后自动被删除
事务功能:院子地执行多个操作,并提供乐观锁功能,保证处理数据时的安全性
脚本功能:在服务器端时原子地执行多个操作,完成复杂的功能,并减少客户端和服务端之间的通信往返次数
复制:为指定的redis服务创建一个或多个复制品,用于提升数据安全性,并分担读请求的负载
集群:创建分布式数据库,每个服务器分别执行一部分写操作和读操作

redis的数据结构
字符串:可以存储文字 数字 二进制数
hash
list
set
zset有序集合
为保证效率数据都是缓存在内存中,也周期性的把更新数据写入磁盘中或者把修改写入追加的记录文件 RDB AOF

2 特点:
1.高速读写数据
2.减轻数据库负担
3.有集合计算功能
4.多种数据结构的支持

3 适合的场合和优势 port:6379
sort set 排行榜运用 top h 例如新浪热搜
list获得最新的n个数据 或某个分类的最新数据
计数器应用
set 获得共同好友
set 防攻击 ip判断等

4 redis 与 memcache区别
1)数据类型:memcache支持的数据类型是字符串,redis支持的数据类型有字符串,哈希,连表,集合,有序集合
2)持久化:memcache数据时存储到内存里面,一旦断电,或者重启,则数据丢失,redis也是存储在内存,但会周期性把数据存储到硬盘上。
3)数据量:memchche一个键存储的数据最大为1M,而redis存储的最大数据量为1G

5 数据类型
1)redis的string可以包含任何数据,包括jpg或者序列化对象
单个value值最大为1G字节
set
set key value 重新执行则覆盖
get 如果键不存在则返回空
incr 对key的值做++操作
incrby 对key的value加上指定的值

2)hash

hash可以用来存储队形的mysql中一行的数据,类似于关联数组
hset
设置哈希的field和value
语法: hset 哈希的名称 field value
hset user?1

hget user?1 field

hmset 一次性设置多个field和value
hmset 哈希名称 field1 value1 。。。

hmget 哈希名称 field1 field2

hgetall 哈希名称 . 例如:hgetall user?1

3)list
从链表的头部添加元素,可以模拟栈的操作
从链表尾部添加元素,可以模拟队列

lpush 从头部添加元素
lpush 链表名 元素

lrange 获取链表的元素
lrange 链表名 开始下标 结束下标 如果开始是0 结束时-1则返回所有元素 链表里面的元素室友序号的 类似于索引数组

rpush 从尾部添加元素
rpush 链表名 元素

ltrim
保留指定范围的元素
语法:ltrim 链表名称 开始下标 结束下标

pop fa 从头部删除一个元素 返回删除元素

4)集合:每个集合的元素不能重复
计算交集:共同好友
计算差集:做推荐好友
计算并集:
sadd 集合名称 元素
smembers 集合名称
sdiff 集合1 集合2
sunion 集合1 集合2 (求并集)
scard 集合 (计算个数)

5)有序集合(序号 值)
取出有序集合里面的元素时 要根据序号排序后取出
zadd 集合名
zrange 集合名 开始下标 结束下标
zrevrange 按序号获取有序集合中的内容

5 常用命令

keys * 返回所有的键
exists key 存在返回1 不存在返回0
del 删除指定的键
expire 设置键的有效期 expire key 时间 如:expire name 60 给key这个键设置60秒
ttl key 返回这个键所剩余的时间
type key 查看数据类型
select 选择数据库
dbsize 返回当前数据库的个数

你可能感兴趣的:(数据库,redis,入门)