Redis入门
概念:redis是一款高性能的nosql(非关系型)的数据库。
关系型数据库:mysql、oracle......
非关系型数据库:Redis、MongoDB
Redis的数据结构
-
Redis存储结构:key-value格式的数据。(key是字符串,value有5种不同的结构)
- value的结构:
- 字符串类型 String
- 哈希类型 hash: map格式
- 列表类型 list: linkedlist格式(可以有重复元素)
- 集合类型 set:(不允许重复元素)
- 有序集合类型 sortedset(不允许重复元素且会自动排序)
- 字符串类型 String
- value的结构:
-
字符串类型 String
- 存储:set key value
- 获取:get key
- 删除: del key
-
哈希 hash
-
存储:hset key field value
hset myhash password 123
-
获取:
-
获取指定field的值: hget key field value
hget myhash password
-
获取所有的hash:hgetall filed
hgetall myhash
-
-
删除: hdel key field
-
-
列表类型 list(可以将一个元素添加到列表的左边或者右边):
- 添加:
- lpush key value(将元素添加到列表的左边)
- rpush key value(将元素添加到列表的右边)
- 获取:
- lrange key start end(范围获取)
- 删除:
- lpop key: 删除列表最左边的元素,并将元素返回
- rpop key: 删除列表最右边的元素,并将元素返回
- 添加:
-
集合类型 set (不允许重复元素):
- 添加: sadd key value
- 获取: smember key: 获取set集合中所有的元素
- 删除: srem key value: 删除set集合中的某个元素
-
有序集合 sorted set (不允许重复元素且元素有序)
- 添加: zadd key score value
- 获取: zrange key start end
- 删除: zren key value
-
通用命令:
- keys * : 查询所有的键
- type key : 获取指定键的类型
- del key:删除指定的key value
持久化
-
Redis 是一个内存数据库,当Redis服务器重启后,数据会丢失
-
Redis持久化机制
-
RDB :默认方式
每隔一段时间去检测key的变化情况,然后持久化数据
编辑redis.windows.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
-
- AOF:日志记录的方式,可以记录每一条命令的操作。
jedis
jedis是Java操作Redis的一个工具,类似于jdbc操作mysql
public class JedisTest {
@Test
public void test1(){
// 1.获取连接(不传参数的话默认就是localhost 6379)
Jedis jedis = new Jedis("localhost", 6379);
// 操作
jedis.set("username", "lisi");
Map<String, String> map = new HashMap<String, String>();
map.put("username", "colbert");
jedis.hset("user", map);
System.out.println(jedis.hget("user", "username"));
// 将activecode:hehe 加入redis,20秒后过期
jedis.setex("activecode", 20, "hehe");
//关闭连接
jedis.close();
}
}
网友评论