Redis总结说明

Redis总结

Redis是一个开源的使用ANSI 由C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值可以是set、zset、list、hash、string这五种类型。
Redis 的优点:
1、支持多种数据类型(同简介中有写的五种数据类型)
redis支持set,zset,list,hash,string这五种数据类型,操作非常方便,如果在做好友系统,查看自己的好友关系,如果采用其他的key-value系统,则必须把对应的好友拼接成字符串,然后在提取好友时,再把value进行解析,而redis则相对简单,直接支持list的存储(采用双向链表或者压缩链表的存储方式)。

2、持久化存储
作为一个内存数据库,最担心的,就是万一机器死机宕机,数据就会消失掉。redis使用RDB和AOF做数据的持久化存储。主从数据同时,生成rdb文件,并利用缓冲区添加新的数据更新操作做对应的同步。

3、性能很好
由于是全内存操作,所以读写性能很好,可以达到10w/s的频率。公司有项目使用redis,目前的访问频率是80w/s,通过适当的部署,线上运行一切ok的。

五种数据结构详解

一. String(字符串)
string是Redis最基本的数据类型,一个key对应一个value。
string类型理论上可以存储大部分编程语言(如PHP,Java,Python等)中涉及到的各种各样的数据结构(数组,对象,字符串,列表,字典,集合等),这些数据可以原封不动的存储到redis的string里,也可以转换为json或序列化后存储到redis里,图片也可以经过base64转码后存储。
string类型一个key最大可以存储512M的数据,不建议存储过大的数据。

二. Hash(哈希)
hash是一个string类型的key和value的映射表。Redis在处理hash数据时,可以理解成在redis中维护了很多个hash(一个hash key对应一个表)表,在每个hash表中又可以像string 类型一样存储key-value数据,所以每个hash数据可以理解成是有两个key的。hash还有 hset, hdel, hlen, hgetall 等方法。

三. list(列表)
redis list是链表结构,类似于数组(列表),是有序的,是双向的,可以在链表左右两边分别操作。由此list经常作为消息队列使用,按照插入顺序,逐个弹出,然后执行相应的操作。消息队列的入队列和出队列可以放到两个程序(进程,线程等都可以),也可以一个程序入队列,rpush/rpushx 有序列表操作,从队列后插入元素,
lpush/lpushx 和rpush/rpushx的区别是插入到队列的头部,同上,'x’含义是只对已存在的key进行操作。

四. Set 集合
redis set集合,就是一堆不重复值的无序的组合,关键词为不重复和无序。

五. Zset 有序集合
zset也是集合,相较于set的无序,zset是有序集合,zset每个元素都有一个关联的double类型的分数(权重)用于内部排序。zset元素也是不重复的。、
参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值