一、认识
首先对数据库一个认识,数据库(Database)是按照数据结构来组织、 存储和管理数据的仓库。
可以分为关系型数据库:一行和列组成二维表来建模的数据库。
非关系型数据库:nosql(not only sql)不仅仅是sql,多用于超大规模和高并发的数据库。
redis是高性能的、开源的、c语言写的nosql中的一种,是一个key-vlue类型Nosql!数据保存在内存中,主要用途用来做缓存!
它支持的数据结构有数组,list,set,map,tree等等
使用场景:中央缓存、计数器、攻防系统、排行榜、自动去重、消息订阅、队列
二、作用
数据存储:存放到内存中,并且还能不定期持久化到硬盘.
Value类型:相较于memcached支持Value更多
客户端支持:支持多种客户端-跨语言
超大并发支持:支持集群
三、 Mysql、Memcached和Redis的比较
四、安装
下载地址 http://redis.io/download
带配置文件启动:
五、使用
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模式
2. AOF追加模式
3.加密
设置:requirepass foobared 需要通过起CMD启动服务器和配置文件生效
使用:auth 密码
七、淘汰策略
allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
当redis存放的数据到达配置的最大内容后,会按照配置淘汰策略进行淘汰.