一头坑进Redis之认识
来源:互联网 发布:js图片重力感应 编辑:程序博客网 时间:2024/05/09 01:29
1. 什么是Redis
Redis(REmote DIctionary Server,远程数据字典服务器)是开源的内存数据库,常用作缓存或者消息队列。
2. Redis中的数据结构
一 .字符串
(1)Redis存在于内存,使用硬盘作为持久化;每秒十万读写。(2)具有丰富的数据结构,字符串、哈希表、列表、集合、有序集合;提供交集、并集、差集等操作。(3)设置TTL存活时间,到期自动删除。(4)Redis单线程、Memcached多线程;对于一般的应用场景,单线程也足够使用,优势还是在于多数据类型、持久化。(5)可以将数据复制到任意数量的从服务器。
二 .哈希表
(1)HSET keyname key value 添加一个哈希属性和值(2)HGET keyname key 获取值(3)HKEYS keyname 获取全部的key值(4)HVALS keyname 获取全部的value值(5)HGETALL keyname 获取所有的值
三 .列表(通过双向链表实现,头尾操作均为O(1),获取指定元素比较慢)
(1)LPUSH keyname value1或者LPUSH keyname value1 value2 在左边插入(2)RPUSH keyname value2 在右边插入(3)LRANGE keyname 0 -1 查询所有的元素(4)LPOP keyname(5)RPOP keyname
四 .集合(元素唯一,但是没有顺序。使用值为空的哈希表实现,操作都是O(1)。)
元素唯一,但是没有顺序。使用值为空的哈希表实现,操作都是O(1)。(1)SADD keyname value1 value2 添加值(2)SREM keyname value1 删除(3)SMEMBERS keyname查询所有元素
四 .有序集合(使用哈希和跳跃表实现,中间速度也很快。)
(1)ZADD keyname key value 添加(2)ZRANGE keyname start end 获取指定范围的元素与列表的比较:相同:(3)都是有序的(4)都可以获取某一范围的元素不同:(5)列表通过双向链表实现,两端数据存取极快,中间缓慢(6)有序集合通过哈希和跳跃表实现,中间速度也很快,为O(log(N))(7)列表不能简单地调整某个元素的位置,有序集合可以(8)有序集合比列表更好费内存
3. Redis持久化
Redis提供了两种持久化方式:1 RDB快照方式 2 AOF方式
RDB方式:
满足一定条件时,会创建一个子进程,复制当前的数据,把数据写入到硬盘中某个文件,写入完成后替换原来的存储文件。数据一般存储在dump.rdb中。UNIX系统中支持写时复制,即刚开始会执行持久化写入磁盘的操作,如果此时有其他的数据发生改变,就复制一份数据执行。
除了这种自动的快照方式,还支持命令方式持久化:
SAVE:通过阻塞的方式,用父进程来持久化,此时无法执行其他的请求。BGSAVE:通过fork子进程的方式,持久化。
AOF方式:
每次操作都会记录命令,这样会造成某些命令的冗余,比如添加了一个属性,再删除,那么这两个操作都是冗余的。redis提供了一些优化,所以可以避免这些冗余信息。命令记录在appendonly.aof中
4. Redis的消息队列
Redis用于消息队列,通常有两种种使用方式:
LIST:基于列表的方式,所有的消费者数据加起来是列表中的所有数据.
发布/订阅:每个消费者订阅独立的channel,每个数据都是独立的。
阅读全文
2 0
- 一头坑进Redis之认识
- 一头坑进Redis之入门
- 一头坑进Redis之Linux安装
- 一头坑进Redis之基础知识
- 一头坑进Redis之事务
- 一头坑进Redis之常见redis.conf配置介绍
- 一头坑进Redis之五大数据类型
- 一头坑进Redis之持久化 Snapshot和AOF说明
- 一头扎进 JMS 之 ActiveMQ 视频教程
- 一头扎进Spring源码之ContextLoader
- 一头扎进springboot之Hello World
- 一头扎进springboot之整合mybatis
- 一头扎进JMS之ActiveMQ第一讲课堂笔记
- 一头扎进Spring源码之获取与切入思路
- 一头扎进springboot之捕获全局异常
- 一头扎进springboot之访问jsp页面
- 认识Redis
- redis 认识
- 关于JAVA_IO流的一些总结
- 区间第k小
- 练习题_5
- 清空pycharm在mac上的数据
- 二叉搜索树 ALDS1_8_C: Binary Search Tree III
- 一头坑进Redis之认识
- C51 特殊功能寄存器SFR的名称和地址
- DirectX11 使用计算着色器实现高斯模糊
- #ifndef#define#endif防止头文件重复包含, 你不是真的懂
- 解决CentOS(6和7版本),/etc/sysconfig/下没有iptables的问题
- LeakCanary源码分析
- 并查集
- [jzoj]1228. Matrix(贪心的最优性证明)
- 9.BroadcastReceiver的使用