1.什么是redis
redis是一个nosql(not only sql)数据库,非关系型数据库
关系型数据库:以二维表的形式存储数据
菲关系型数据库:以键值对形式存储数据(key,value形式)
redis底层用C语言编
redis是将数据存到内存中,由于内存存取速度快所以redis被狂烦应用在互联网项目中,
redis优点:存取速度快,存取速度达到30万次每秒,具体限制于硬件
缺点:对持久化支持不够良好
所以redis一般不作为主数据库的存储,一般配合传统的关系型数据库使用
2.redis应用领域
分布式缓存
分布式session
保存博客或者论坛的留言回复等
总之是用在数据量大,并发量高的情况下
3. 怎么用
Redis数据类型
字符串String
存:SET key value
取:GET key
删:Del key
递增:INCR key INCRBY key increment
递减:DECR key
列表list redis中使用的是双向循环链表实现的,在redis中更像是栈
向列表左边增加元素 : lpush list:1 1 2 3
查看: lrange list:1 0 2
弹出元素: lpop list:1
获取个数: llen list:1
散列Hash 一般应用于将redis作为分布式缓存,存储数据库中的数据对象
存:hset user username zhangsan hmset user age 20 username lisi
取: hget user username hmget user age username
hgetall user
删: hdel user age
递增:hincrby user age 2
集合Set set中数据是无序的并且不允许重复
存:sadd set a b c
获取元素:smembers set
有序集合zset 商品销售排行榜(根据分数自动排序)
存:zadd scoreboard 80 zhangsan 89 lisi 94 wangwu
取: zscore scoreboard lisi
删: zrem scoreboard lisi
排名在某个范围的元素: zrange scoreboard 0 2
获取分数:zrange scoreboard 0 1 WITHSCORES
其他命令:
EXPIRE key seconds 设置key的生存时间(单位:秒)key在多少秒后会自动删除
TTL key 查看key生于的生存时间
PERSIST key 清除生存时间
PEXPIRE key milliseconds 生存时间设置单位为:毫秒
4. redis持久化方案
Rdb:可以设置间隔多长时间保存一次(redis不用任何配置默认的持久化方案)
优点:让redis的数据存取速度变快
缺点:服务器断电时会丢失部分数据(数据的完整性得不到保障)
Aof:可以设置实时保存
优点:持久化良好,能保证数据的完整性
缺点:大大降低了redis系统的存取速度
5.主从复制:
这里使用了心跳检测机制,主从复制必须使用rdb持久化方式
从服务器一般只读,保证主服务器和从服务器的数据一致性