1.课程介绍
1. Redis概述;(了解)
2. 安装Redis;;(掌握)
3. Redis cli操作Redis;(掌握)
4. Redis持久化;(掌握)
5. Redis淘汰策略;(掌握)
6. Redis集群;(掌握)
什么是NoSql
它泛指非关系型的数据库
Redis是什么
Redis 是一个高性能的开源的、C语言写的Nosql(非关系型数据库),数据保存在内存中。
Redis 是以key-value形式存储,和传统的关系型数据库不一样。不一定遵循传统数据库的一些基本要求,比如说,不遵循sql标准,事务,表结构等等,redis严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
数据结构:数组,list,set,map等
redis提供了一下操作方法,我们使用这些方法就可以对存入字符串,组织成各种类型数据库结构(string,list,set,map等).
key-value数据库 --redis
列存储数据库
文档型数据库
图形数据库
redis和memcache之间区别–面试题
redis的使用场景–面试题
1,缓存
2,计数器应用
3,实时防攻击系统
4,设定有效期的应用
5,自动去重应用
6,队列,
7,消息订阅系统
安装redis
启动redis服务(带配置文件启动,和不带配置文件启动)
redis-server.exe redis.windows.conf
ip是默认端口
端口
-p 默认6379
redis使用–下来练习
对字符串操作–使用
语法 set key value
get key
(2)keys的操作
keys * 查看所有的key
del key 删除key
flushDb 清空当前数据库
flushAll 清空所有库
expire key time(秒)
ttl key 查看剩余时间
(3)操作list
lpush rpust lrange
(4)操作set
sadd smember
(5)操作hash
hset hget
(6)操作事务 发布定义–了解
Java操作Redis
先创建一个项目,在导包
test
public class TestRedis {
@Test
public void testone() throws Exception{
//设置端口,ip和
Jedis jedis = new Jedis("127.0.0.1",6379,1000);
jedis.set("name","彪哥");
System.out.println(jedis.get("name"));
jedis.close();
}
@Test
public void testtwo() throws Exception{
JedisPoolConfig config = new JedisPoolConfig();
//设置最大空闲数
config.setMaxIdle(2);
//设置最大连接池
config.setMaxTotal(10);
//设置最大超时时间
config.setMaxWaitMillis(1000);
JedisPool jedisPool = new JedisPool(config,"127.0.0.1",6379,1000*1);
//获取jedis对象
Jedis jedis = jedisPool.getResource();
//设置属性
jedis.set("name1","马仔");//新增
//修改
jedis.set("name1","大马仔");
//删除
jedis.del("name1");
System.out.println(jedis.get("name1"));
System.out.println("=================华丽的分割线====================");
//查询所有
System.out.println(jedis.keys("*"));
jedis.lpush("name2","A","B","D","C","E","Q");
//list
List<String> list = jedis.lrange("name2", 0, -1);
for (String s : list) {
System.out.println(s);
}
//set
jedis.sadd("name3","V","C","D","A");
System.out.println(jedis.smembers("name3"));
//hash操作
jedis.hset("name4","man","彪哥");
System.out.println(jedis.hget("name4", "man"));
jedis.close();
jedisPool.destroy();
}
@Test
public void testthree() throws Exception{
JedisPoolConfig config = new JedisPoolConfig();
//设置最大空闲数
config.setMaxIdle(2);
//设置最大连接池
config.setMaxTotal(10);
//设置最大超时时间
config.setMaxWaitMillis(1000);
JedisPool jedisPool = new JedisPool(config,"127.0.0.1",6379,1000*1);
//获取jedis对象
Jedis jedis = jedisPool.getResource();
//数字排序
jedis.flushDB();
jedis.lpush("name5","3","1","4","5");
SortingParams params = new SortingParams();
//降序
params.desc();
List<String> sort = jedis.sort("name5", params);
System.out.println(sort);
//字母排序
jedis.lpush("languages","java","ui","test","py");
SortingParams params1 = new SortingParams();
//降序
params1.alpha();
List<String> sort1 = jedis.sort("languages", params1);
System.out.println(sort1);
jedis.close();
jedisPool.destroy();
}
}