Redis简介

一.redis的简介

1.介绍: Redis是一个开源的使用ANSI  C语言 编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库 ,并提供多种语言的API。
2.应用场景:
a.会话缓存(Session Cache); b.全页缓存(FPC); c.队列; d.做排行榜/计数器; e.消息的发布与订阅;
3.使用redis的好处:
a.速度快,因为数据存在内存中,类似于HashMap;查找和操作都快;
b.支持丰富的数据类型.如:string list set sorted(zset) hash
c.支持事务:操作都是原子性的,(就是对数据的操作要么全部执行,要么全部不执行)
d.丰富的特性:可用于缓存,消息;可以按照key设置过期时间,过期后将会自动删除
4.redis的特点:
a.redis本质上是一个key-value类型的数据库,很像memcached(   是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载),整个数据库都加在内存中进行操作,定期通过异步操作把数据库数据flash到硬盘上保存,因为是纯内存操作,所以性能非常出色;redis存储数据类型五种, 这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些数据操作都是原子性的,另外redis支持各种不同方式的排序;redis也会周期性的把更新的数据写入磁盘或者把修改操 作写入追加的记录文件,并在此基础上实现了master-salve(主从)同步;
b.支持保存多种数据结构;
c.单个value最大限制1GB,(memcached只能保存1MB)
d.主要缺点:数据库容量收到物理内存的限制,不能用作含量数据的高性能读写;

       

5.redis把数据放入内存中的原因:
整个数据库都加载到内存中进行操作,定期通过异步操作把数据库数据flash到硬盘上保存;所以redis具有快速和数据持久化的特征,如果不将数据放入到内存中,磁盘I/O速度会严重影响redis的性能;如果设置了最大使用内存,则数据达到已有占内存限值后不能继续插入数据;


         

常用指令:
a.两端添加:
头部添加:lpush key value[value1,value2...]
尾部添加:rpush key value[value1,value2...]
b.查看列表:
lrange key start end(end=-1 表示从start开始到最后一个)
c.两端弹出:
弹出链表中第一个元素,即头部元素:lpop key
弹出链表中最后一个元素,即尾部元素:rpop key
d.获取元素个数:
llen key;查元素数量;
扩展指令:
lpushx key value(key存在时才可以在头部插入value)
rpushx key value
lrem key count value(从头到尾便利并删除count个值为value的元素,count<0从右到左,count=0全部删除)
lset key index value 设置index的值,替换
linsert key before/after pivot value(在povit前面或者后面插入value)
rpoplpush resource(源) destination(目标) 源里最后一个弹出到目标头部,为处理队列操作异常,做循环
4.set(最大元素数量43亿,)服务器之间聚合计算(无序),不重复
①.常用命令:
a.添加:sadd key values[...]无序.
b.删除set中指定成员:srem key members[...]
c.获取set中所有成员:smember key
sismember key member(成员) 判断参数中指定成员是否存在
②.集合差集运算:
a.交集:sinter key1 key2 key3...
b.并集:sunion key1 key2 key3...
c.差集:sdiff key1 key2...返回key1与key2相差成员,与key的顺序有关;
③.扩展指令:
a.获取set中成员的数量:scard key
b.随即返回set中一个成员(成员还在):srandmember key
④.应用场景:
a.跟踪一些唯一性数据,比如访问某一博客的唯一ip地址,id等
5.存储sorted-set,排序的集合,不允许成员重复
sorted-set中每一个成员都会有一个分数(score)与之关联,redis正是根据成员的分数从小到大排序的,注意:sorted-set终成成员必须是唯一的,但是分数(score)却是可以重复的,sorted-set中每一个成员在集合中是有序的,所以添加,删除,更新非常快;
①.常用命令:
a.添加元素:zadd key score member score2 member2...
b.获得元素:zscore key member (返回指定成员分数)
zcard key(获得集合中成员数量)
c.删除元素:zrem key member[member...]

三.常用key的操作指令
1.keys pattern 获得所有与pattern匹配的key,*表示任意一个或多个字符,?表示任意一个字符;
2.del key1 key2 删除指定key
3.exists key 判断可以是否存在 1表示存在,0表示不存在
4.rename key newkey 为当前key重命名
5.expire key s 设置过期时间,单位秒
6.tll key 获取该key所剩超时时间,-1表示没有设置超时,-2表示超时不存在,
7.type key 获取指定key的类型;该命令将以字符串的形式返回,返回的字符串为string,list,sethash和zset,如果可以不存在则返回none;

四.jedis很简单介绍
redis不仅使用命令操作,同样有客户端Jedis.Redisson,Jredis,JDBC-Redis.官方推荐jedis和redisson,托管在GitHub上;


五.Redis特性(基本在前面说清楚了,这里主要介绍它的主从同步)
1.Redis支持主从同步,数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器,这使得redis可执行但层数复制,存盘可以有意无意的对数据进行写操作,完全实现发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接受主服务器完整的消息发布记录,同步对读取操作的可扩展性和数据冗余很有帮助,
2.Redis持久化:
①.RDB持久化
该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘
优点:
a.只有一份rdb文件,可以随时备份
b.比aof文件小,加载速率高
c.只提供fork子进程,不阻塞主进程,IO操作比较少;
②.AOF持久化:
该机制将以日志的形式记录服务器中所处理的每一个操作,在redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据都是完整的,
优点:a.每次改动同步数据库安全性好,
b.append方式加载日志,不会对旧文件产生影响;
③.无持久化
我们可以通过配置的方式禁用Redis服务器的持久化功能;
④.同时使用AOF和RDB




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值