一、认识

首先对数据库一个认识,数据库(Database)是按照数据结构来组织、 存储和管理数据的仓库。

可以分为关系型数据库:一行和列组成二维表来建模的数据库。

非关系型数据库:nosql(not only sql)不仅仅是sql,多用于超大规模和高并发的数据库。

redis是高性能的、开源的、c语言写的nosql中的一种,是一个key-vlue类型Nosql!数据保存在内存中,主要用途用来做缓存!

它支持的数据结构有数组,list,set,map,tree等等

使用场景:中央缓存、计数器、攻防系统、排行榜、自动去重、消息订阅、队列

二、作用

数据存储:存放到内存中,并且还能不定期持久化到硬盘.

Value类型:相较于memcached支持Value更多

客户端支持:支持多种客户端-跨语言

超大并发支持:支持集群

三、 Mysql、Memcached和Redis的比较

 

Redis数据库厂商 redis数据库是干什么的_memcached

四、安装

下载地址   http://redis.io/download

Redis数据库厂商 redis数据库是干什么的_redis_02

带配置文件启动:

Redis数据库厂商 redis数据库是干什么的_redis_03

 

  五、使用

1.对value进行操作

set key value//将字符串值value关联到key

get key       //返回key关联的字符串值

mset //同时设置一个或多个 key-value 对

mget //返回所有(一个或多个)给定 key 的值

incr key //将 key 中储存的数字值增1(key不存在,则初始化为0,再加1)

decr key //将 key 中储存的数字值减1(key不存在,则初始化为0,再减1)

incrBy key num//自增多少

decrBy key num//自减多少

2.对key进行操作

keys *  //获取所有key列表

del key  //删除key

expire key xx //设置key的过期时间(xx秒后过期)

ttl key //查看key的过期时间

select 0-15 选择库  默认16个数据库

flushall //清空整个redis服务器数据,所有的数据库全部清空

flushdb  //清除当前库,redis中默认有16个数据库,名称分别为0,1,2.。。15

3.创建Jedis 工具类

1 public enum RedisUtil {
 2 
 3     INSTANCE;
 4 
 5     private static JedisPool jedisPool;
 6 
 7     static{
 8         JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
 9         //最大连接数
10         jedisPoolConfig.setMaxTotal(10);
11         //空闲时最大连接数
12         jedisPoolConfig.setMaxIdle(5);
13 
14         jedisPool = new JedisPool(jedisPoolConfig,"127.0.0.1");
15 
16     }
17 
18     public static Jedis getJedis(){
19         return jedisPool.getResource();
20     }
21 
22 }

4.list 

1 Jedis jedis = new Jedis("127.0.0.1");
 2 jedis.flushAll();//清空所有数据
 3 //list
 4 // lpush     在最左边添加 [ss, sus]
 5 jedis.lpush("i", "sus","ss");
 6 System.out.println(jedis.lrange("i", 0, -1));
 7 //lpop       删除左边第一个 并返回   ss
 8 System.out.println(jedis.lpop("i"));
 9 //lrange     遍历  -1 表示结束  [sus]
10 System.out.println(jedis.lrange("i", 0, -1));
11 jedis.close();

5.map

1  Jedis jedis = RedisUtil.getJedis();
2  //map  {name=su, age=18}
3 jedis.hset("student", "name","su");
4  jedis.hset("student", "age", "18");
5 System.out.println(jedis.hgetAll("student"));
6 jedis.close();

6.set

1 Jedis jedis = RedisUtil.getJedis();
2 //set  不能重复[s, u]
3  jedis.sadd("user", "s","s","u");
4 System.out.println(jedis.smembers("user"));
5 jedis.close();

 六、持久化

Redis 提供了两种不同级别的持久化方式:RDB和AOF,可以通过修改redis.conf来进行配置.

1. RDB模式

Redis数据库厂商 redis数据库是干什么的_Redis数据库厂商_04

2.  AOF追加模式

Redis数据库厂商 redis数据库是干什么的_数据库_05

3.加密

设置:requirepass foobared 需要通过起CMD启动服务器和配置文件生效

使用:auth 密码

七、淘汰策略

allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰

当redis存放的数据到达配置的最大内容后,会按照配置淘汰策略进行淘汰.