南京网站搭建公司,广东省公共资源交易中心地址,就业合同模板,wordpress自动评论插件一、redis概述
1、redis
redis#xff1a;一款高性能的NOSQL系列的非关系型数据库redis
2、NoSQL
NoSQL#xff1a;泛指非关系型的数据库
NOSQL分类#xff1a;
键值(Key-Value)存储数据库#xff1a;内容缓存#xff0c;主要用于处理大量数据的高访问负载列存储数据…一、redis概述
1、redis
redis一款高性能的NOSQL系列的非关系型数据库redis
2、NoSQL
NoSQL泛指非关系型的数据库
NOSQL分类
键值(Key-Value)存储数据库内容缓存主要用于处理大量数据的高访问负载列存储数据库分布式的文件系统文档型数据库Web应用图形(Graph)数据库社交网络
3、下载安装
官网https://redis.io中文网http://www.redis.net.cn解压直接可以使用 redis.windows.conf配置文件redis-cli.exeredis的客户端redis-server.exeredis服务器端 二、redis数据结构
key字符串
value
字符串类型 string哈希类型 hashmap格式列表类型 list linkedlist格式支持重复元素集合类型 set 不允许重复元素有序集合类型 sortedset不允许重复元素且元素有序
三、redis命令
类型存储获取删除stringset key valueget keydel keyhashhset key field valuehget key fieldhgetall keylrange start endhdel key fieldlistlpush key valuerpush key valuelrange key start endlpop keyrpop keysetsadd key valuesmembers keysrem key valuesortedsetzadd key score valuezrange key start end [withscores]zrem key value
keys * 查询所有的键type key 获取键对应的value的类型del key删除指定的key value
四、redis持久化
1、redis持久化概述
redis是一个内存数据库当redis服务器重启获取电脑重启数据会丢失我们可以将redis内存中的数据持久化保存到硬盘的文件中。
2、RDB 默认方式不需要进行配置默认就使用这种机制 在一定的间隔时间中检测key的变化情况然后持久化数据 修改配置 编辑redis.windwos.conf文件 ## after 900 sec (15 min) if at least 1 key changed
save 900 1
## after 300 sec (5 min) if at least 10 keys changed
save 300 10
## after 60 sec if at least 10000 keys changed
save 60 10000重新启动redis服务器并指定配置文件名称 redis-server.exe redis.windows.conf3、AOF 日志记录的方式可以记录每一条命令的操作。可以每一次命令操作后持久化数据 配置 编辑redis.windwos.conf文件 ppendonly no关闭aof -- appendonly yes 开启aof## appendfsync always 每一次操作都进行持久化
appendfsync everysec 每隔一秒进行一次持久化
## appendfsync no 不进行持久化重新启动redis服务器并指定配置文件名称 redis-server.exe redis.windows.conf五、Jadis
1、Jadis概述
Jadisjava操作redis数据库的工具
2、下载使用
下载并导入jedis的jar包
//1. 获取连接
Jedis jedis new Jedis(localhost,6379);
//2. 操作
jedis.set(username,zhangsan);
//3. 关闭连接
jedis.close();3、操作redis
1string
//1. 获取连接
Jedis jedis new Jedis();//如果使用空参构造默认值 localhost,6379端口
//2. 操作
//存储
jedis.set(username,zhangsan);
//获取
String username jedis.get(username);
System.out.println(username);//可以使用setex()方法存储可以指定过期时间的 key value
jedis.setex(activecode,20,hehe);
//将activecodehehe键值对存入redis并且20秒后自动删除该键值对//3. 关闭连接
jedis.close();2hash
//1. 获取连接
Jedis jedis new Jedis();//2. 操作
//2.1 存储hash
jedis.hset(user,name,lisi);
jedis.hset(user,age,23);
jedis.hset(user,gender,female);
//2.2 获取hash
String name jedis.hget(user, name);
System.out.println(name);
//2.3 获取hash的所有map中的数据
MapString, String user jedis.hgetAll(user);//3. 关闭连接
jedis.close();3list
//1. 获取连接
Jedis jedis new Jedis();//2. 操作
//2.1 list 存储
jedis.lpush(mylist,a,b,c);//从左边存
jedis.rpush(mylist,a,b,c);//从右边存
//2.2 list 范围获取
ListString mylist jedis.lrange(mylist, 0, -1);
//2.3 list 弹出
String element1 jedis.lpop(mylist);//c
String element2 jedis.rpop(mylist);//c
//2.4 list 范围获取
ListString mylist2 jedis.lrange(mylist, 0, -1);//3. 关闭连接
jedis.close();4set
//1. 获取连接
Jedis jedis new Jedis();//2. 操作
//2.1 set 存储
jedis.sadd(myset,java,php,c);
//2.2 set 获取
SetString myset jedis.smembers(myset);//3. 关闭连接
jedis.close();5sortedset
//1. 获取连接
Jedis jedis new Jedis();//2. 操作
//2.1 sortedset 存储
jedis.zadd(mysortedset,3,亚瑟);
jedis.zadd(mysortedset,30,后裔);
jedis.zadd(mysortedset,55,孙悟空);
//2.2 sortedset 获取
SetString mysortedset jedis.zrange(mysortedset, 0, -1);//3. 关闭连接
jedis.close();4、jedis连接池
jedis连接池JedisPool
//0.创建一个配置对象
JedisPoolConfig config new JedisPoolConfig();
config.setMaxTotal(50);
config.setMaxIdle(10);//1.创建Jedis连接池对象
JedisPool jedisPool new JedisPool(config,localhost,6379);//2.获取连接
Jedis jedis jedisPool.getResource();//3. 使用
jedis.set(hehe,heihei);//4. 关闭 归还到连接池中
jedis.close();5、连接池工具类
public class JedisPoolUtils {private static JedisPool jedisPool;static{//读取配置文件InputStream is JedisPoolUtils.class.getClassLoader().getResourceAsStream(jedis.properties);//创建Properties对象Properties pro new Properties();//关联文件try {pro.load(is);} catch (IOException e) {e.printStackTrace();}//获取数据设置到JedisPoolConfig中JedisPoolConfig config new JedisPoolConfig();config.setMaxTotal(Integer.parseInt(pro.getProperty(maxTotal)));config.setMaxIdle(Integer.parseInt(pro.getProperty(maxIdle)));//初始化JedisPooljedisPool new JedisPool(config,pro.getProperty(host),Integer.parseInt(pro.getProperty(port)));}/*** 获取连接方法*/public static Jedis getJedis(){return jedisPool.getResource();}
}