Redis入门详解

①.Redis简介

Redis是一个使用C语言编写的key-value开源的NOSQL存储系统。(区别于MySQL的二维表格的形式存储)。

Redis是单线程+多路IO复用技术

②.Redis特点

1、高效性:Redis读取的速度是110000次/s,写的速度是81000次/s
2、原子性:Redis的所有操作都是原子性的,不能再细化的。
3、支持杜仲数据结构:string(字符串);list(列表);hash(哈希),set(集合)
4、稳定性强:支持数据持久化,支持主从结构的数据备份
5、其他:支持数据有效期,支持订阅。

③.Redis适用场景

1、.取最新N个数据的操作
2、取TOP N操作
3、需要精准设定过期时间的场景
4、计数器应用
5、Uniq操作,获取某段时间所有数据排重值
6、Pub/Sub构建实时消息系统
7、缓存数据(缓存的是热数据)
8、构建队列系统

热数据:经常被使用的数据,访问频次较高的数据为热数据。

④.Redis不适用场景

需要事务支持
基于sql的结构化查询存储,处理复杂的关系,需要即席查询

⑤Nosq数据库举例

1、memcache 比较早的Nosq数据库,不持久化,目前适用的很少
2、redis 覆盖了memcache几乎所有功能,支持数据持久化,支持多种数据结构的存储
3、mongoDB 也是key-value模式,对value进行了很多优化,在部分场景中可以取代关系性数据库。
4、hbase海量数据 ,精确查询,快速返回

⑥Redis 安装部署

1、上传安装包,并解压。

2、安装编译需要的环境

yum install -y gcc-c++
yum install -y tcl

3、编译redis( C语言编写的软件需要重新编译 )

make && make install

看到如下表示编译成功

4、修改配置文件

首先创建日志存放路径和数据持久化存储的路径

mkdir -p /export/servers/redis-3.2.8/logs
mkdir -p /export/servers/redis-3.2.8/redisdata

修改配置文件

bind node01
daemonize yes
pidfile /var/run/redis_6379.pid
logfile "/export/servers/redis-3.2.8/logs/redis.log"
dir /export/servers/redis-3.2.8/redisdata

5、启动并验证

./redis-server ../redis.conf
[root@node01 src]# ps -ef |grep redis
root 7472 1 0 01:17 ? 00:00:00 ./redis-server node01:6379

验证

[root@node01 src]# ./redis-cli -h node01
node01:6379> set name zhangsan
node01:6379> keys *
1) "name"
node01:6379> get name
"zhangsan"
node01:6379>

 

 

[infobox title=”代码”]

  //获取redis连接池
        JedisPool jedisPool = new JedisPool("192.168.100.103",6379);
        //获取连接对象
        Jedis jedis = jedisPool.getResource();
        //通过对象调用api
        //jedis.set("string9999","233333");
        String string9999 = jedis.get("string9999");
        System.out.println(string9999);
        jedis.close();

 

 

 //设置数据库连接池
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        //设置连接池的最大连接数
        jedisPoolConfig.setMaxTotal(50);
        //设置最大空闲数量
        jedisPoolConfig.setMaxIdle(10);
        //设置最大小空闲数量
        jedisPoolConfig.setMaxIdle(5);
        //连接超时时间(最大等待时间)
        jedisPoolConfig.setMaxWaitMillis(30);
        //获取redis连接池
        JedisPool jedisPool = new JedisPool(jedisPoolConfig,"192.168.100.103", 6379);
        //获取连接对象
        Jedis jedis = jedisPool.getResource();
        //通过对象调用api
        String string9999 = jedis.get("string9999");
        System.out.println(string9999);
        jedis.close();

[/infobox]


已发布

分类

,

作者:

标签

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注