Redis:

1. 概念:开源的高性能键值对数据库,

提供多种键值对数据类型:字符串、(离散)哈希、列表、集合、有序集合类型

内部储存与持久化:内存的读写速度远高于磁盘;自身提供持久化机制(RDB、AOF)

Redis的字符串类型

字符串类型是Redis中最基本的数据类型,可以储存任何形式的字符串:二进制数据,JSON化的对象、字节数组等。一个字符串类型的最大存储空间为512M

2. 对数据的操作命令:

SET key1 value1

GET key1

EXPIRE key1 10        设置key1的生命周期为10秒

TTL key1           查看key1的剩余生命周期,返回:-1代表永久,-2代表已经失效

PEXPIRE key1 10000      设置key1的生命周期为10000毫秒

MSET key1 val1 key2 val2    设置多个键值对

MGET key1 key2                         获取多个键所对应的值

APPEND key1 234                       向key1的末尾追加234,如不存在这个键则相当于设置这个键值,返回结果是追加后字符串的总长度

STRLEN key1                                获得key1的值的字符串的总长度,不存在返回0

存储的是整数时:

INCR key1                                     在原来的值上递增1

INCRBY key1 5                            在原来的值上递增5

3. Redis客户端的使用:Jedis

方法1:

Jedis jedis = new Jedis(“127.0.0.1”,6379 );                新建,设置IP、端口

//Jedis.auth(“123”);                                                        配置访问密码(如有密码需要这句代码,另外只有全局密码,无针对各数据库的)

Jedis.set(“key1”,”val1”);                                               设置键值对

String value = jedis.get(“key1”);                                  根据键获取值

Jedis.close();                                                                     关闭连接

方法2:连接池

JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();      新建连接池配置对象

jedisPoolConfig.setMaxTotal(50);                                                  设置最大连接数

JedisPool jedisPool = new JedisPool(jedisPoolConfig,”127.0.0.1”,6379);        新建连接池对象

Jedis jedis = jedisPool.getResource();                                           从连接池中获取连接

//Jedis.auth(“123”);                                                                          如有密码需要配置

String value = jedis.get(“key1”);

JedisPool.returnResource(jedis);                                                调用连接池回收连接

jedisPool.close();                                                                                 释放连接池

方法3:集群式连接池:

JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();          新建连接池配置对象

jedisPoolConfig.setMaxTotal(50);                                                    设置最大连接数

List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>;   定义集群信息

shards.add(new JedisShardInfo(“127.0.0.1”,6379));

shards.add(new JedisShardInfo(“127.0.0.1”,6380));

定义集群连接池

ShardedJedisPool shardedJedisPool = new SaradedJedisPool(jedisPoolConfig,shards);

ShardedJedis shardedJedis = null;

try{

shardedJedis = shardedJedisPool.getResource();             从连接池获取jedis分片对象

}

相关操作………..

catch(Exception e){

e.printStakTrace();

} finally{

If(null != shardedJedis){

shardedJedis.close()                                                     将jedis分片放回池中

}

}

sharedeJedisPool.close();

4. 多节点Redis(无集群的实现)

缺点:该方法在添加新的Redis节点时会出现问题,因为它会重新计算分配hash值,有可能会获取不到原来的值。

5.      Hash结构

5.1.  结构说明

注意:Hash中存储的字段和值只能是字符串。

5.2.  基本命令使用

HSET key1 field1 val1

HGET key1 field1

HMSET key1 field1 val1 field2 val2

HMGET key1 field1 field2

HGETALL key

注意:HSET不会区分插入和更新操作,如操作是插入则返回1,更新返回0

5.3.  Jedis中操作Hash结构

5.4.  判断字段是否存在

5.5.  增长和删除

5.6.  只获取字段名或字段值

5.7.  获取字段数量

5.8.  Redis配置文件

达到内存限制后的处理策略:

5.9.  相关的推荐

Redis内存使用优化与存储

http://www.infoq.com/cn/articles/tq-redis-memory-usage-optimization-storage

Redis复制与可扩展集群搭建

http://www.infoq.com/cn/articles/tq-redis-copy-build-scalable-cluster

Redis 设计与实现

https://redisbook.readthedocs.org/en/latest/

SpringSource发布Spring Data Redis 1.0.0

http://www.infoq.com/cn/news/2012/01/spring-data-redis-1-0-0

Redis内存存储结构分析

http://www.searchtb.com/2011/05/redis-storage.html

6.      Redis的持久化

6.1.  RDB方式

6.1.1.   如何禁用RDB持久化

禁用RDB的触发条件即可。

6.1.2.   RDB持久化过程

6.2.   AOF方式

6.2.1.   原理

开启AOF:

6.2.2.   AOF文件内容

注意:查询数据的操作不做记录。

6.2.3.   AOF文件的优化

优化后:

6.2.4.   文件到磁盘的机制

参考资料:《传智播客》

Redis的基本知识的更多相关文章

  1. 新手初学Redis之基础知识命令

    笔者最初接触Redis是因为了解了一些nosql方面的知识,觉得nosql是一个很有意思的方面.像其中的mongodb,redis等等.当初也没有深入的去了解Redis,直到自己前段时间在写一个web ...

  2. $Django redis内存数据库 (知识回顾cmd切换目录)

    知识小回顾 #切换盘 C:\Users\WangDong>f: F:\> #切换文件 F:\>cd redis F:\redis> #返回上一级 F:\DJ\dj8>cd ...

  3. Redis的好处知识

    参考文章 http://www.cnblogs.com/wupeiqi/articles/5132791.html 使用Redis有哪些好处? () 速度快,因为数据存在内存中,类似于HashMap, ...

  4. redis相关缓存知识

    Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...

  5. Redis系列-冷知识

    下面是一些看了,但觉得用处不大,不记下又可惜的东西. Redis删除过期数据 redis通过expire/expireat(秒为单位)或者pexpire/pexpireat(毫秒为单位)来设置key的 ...

  6. Redis集群知识解析

    redis集群在启动的时候就自动在多个节点间分好片.同时提供了分片之间的可用性:当一部分redis节点故障或网络中断,集群也能继续工作.但是,当大面积的节点故障或网络中断(比如大部分的主节点都不可用了 ...

  7. Redis Cluster 理论知识

    http://www.ttlsa.com/redis/redis-cluster-theoretical-knowledge/ Redis 集群的 TCP 端口(Redis Cluster TCP p ...

  8. redis的相关知识

    1. 依赖包安装 pom.xml 加入: <!-- redis cache related.....start --> <dependency> <groupId> ...

  9. Redis数据结构底层知识总结

    Redis数据结构底层总结 本篇文章是基于作者黄建宏写的书Redis设计与实现而做的笔记 数据结构与对象 Redis中数据结构的底层实现包括以下对象: 对象 解释 简单动态字符串 字符串的底层实现 链 ...

随机推荐

  1. zabbix回顾

    1.zabbix能收集哪些信息? 磁盘空间,磁盘IO,cpu负载,内存使用情况,开机时间,网卡的网络流量,进程数等 2.zabbix支持哪些通讯方式? agent:通过专用的代理程序进行监控,是mas ...

  2. 流程与IT管理是未来IT行业发展的必经之路

    流程与IT管理是未来IT行业发展的必经之路 PM圈子 百家号17-11-2411:30 本文由“光环国际”—中国项目管理PMP培训上市企业转载 IT部门的职责之所以能够从辅助部门发展成业务支撑部门,最 ...

  3. Redis5.0+哨兵模式+Keepalived实现高可用

    Redis主备配置 原理: 从服务器向主服务器发出SYNC指令,当主服务器接到此命令后,就会调用BGSAVE指令来创建一个子进程专门进行数据持久化工作,也就是将主服务器的数据写入RDB文件中.在数据持 ...

  4. 渐变UI

    1.h #import <UIKit/UIKit.h> @interface UIView (Gradient) /* The array of CGColorRef objects de ...

  5. lua---研究 c-api

    c-api 参考手册:http://www.leeon.me/a/lua-c-api-manual

  6. Hadoop分布式文件系统HDFS的工作原理

    Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.它能提供高吞吐量的数据访问,非常适合大规模数据集上的应 ...

  7. 下载了好久的IntelliJ IDEA一直没用

    今天想试一下然后打开了IJ,发现我居然一直没有配置JDK macos 配置完全按照这个一步步走下去就好了 https://jingyan.baidu.com/album/597a0643336e263 ...

  8. 纯css实现轮播(渐变式 less语法)

    下载:https://pan.baidu.com/s/181GkM0EdM5NSqnUcecMS4Q 预览

  9. Linux删除/boot后该如何恢复

    一.其实不光boot目录被删除,也有系统启动不起来等,一直因为/boot这个目录的的问题,今天就来解决一下 Centos 6 1.进入救援,先修复vmlinz(内核) chroot /mnt/sysi ...

  10. 安卓开发创建活动,布局,添加按钮,she使用Toast,设菜单,使菜单相关联等操作

    ---恢复内容开始--- 创建一个新活动在app/src/main/java/com.example.activitytest ,然后右击com.example.activitytest包→New→A ...