Redis基本操作快速入门

    科技2022-07-21  106

    Redis

    1、概念

    redis是一款高性能的NOSQL系列的非关系型数据库

    2、下载安装

    ​ 1、官网:https://redis.io

    ​ 2、中文网:http://www.redis.net.cn

    3、文件说明

    redis.windows.conf:配置文件redis-cli.exe:redis的客户端redis-server.exe:redis的服务器

    4、命令操作

    1、redis的数据结构:

    redis存储的是:key,val格式的数据,其中key都是字符串,value由5种不同的数据结构

    ​ value的数据结构:

    ​ 1) 字符串类型 string

    ​ 2) 哈希类型 hash : map格式

    ​ 3) 列表类型 list : linkedlist格式

    ​ 4) 集合类型 set : 不允许重复的元素

    ​ 5) 有序集合类型 sortedset : 不允许重复的元素,且元素有顺序

    2、字符串类型 string

    存储:set key val # set username 张三 获取:get key # get username 删除:del key # del username

    3、哈希类型 hash

    存储:hset key field value # hset myhash username lisi # hset myhash password 123 获取: # hget key field:获取指定的field对应的值 # hget myhash username # hgetall key:获取所有的field和value # hgetall myhash 删除:hset key field # hdel myhash username

    4、列表类型 list:可以添加一个元素到列表的头部(左边)或者尾部(右边)

    1、添加: # 1、lpush key value:将元素添加到列表左边 # 2、rpush key value:将元素添加到列表右边 2、获取: # lrange key start end :范围获取 3、删除: # lpop key:删除列表最左边的元素,并将元素返回 # rpop key:删除列表最右边的元素,并将元素返回

    5、集合类型 set:不允许重复元素

    1、存储:sadd key value # sadd myset a 2、获取:smembers key:获取set集合中所有元素 # smembers myset 3、删除:srem key value :删除set集合中的某个元素 # srem myset a

    6、有序集合类型 sortedset:不允许重复元素,且元素有顺序

    1、存储:zadd key score value: # zadd mysort 60 lisi 2、获取:zrange key start end # zrange mysort 0 -1 [withscore] 3、删除:zrem key value # zrem mysort lisi

    7、通用命令

    keys *:查询所有的键type key:获取键对应的value类型del key:删除指定的key value

    5、持久化

    1、redis是一个内存数据库,当redis服务器重启,或电脑重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘文件中。

    2、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

    开启关闭redis

    启动服务:redis-server --service-start 停止服务:redis-server --service-stop

    AOF:日志记录的方式,可以记录每一条命令操作。可以每一次命令操作后,持久化数据

    编辑redis.windows.conf文件 # appendonly no --> appendonly yes (开启AOF) # appendfsync always :每一次操作都进行持久化 # appendfsync everysec :每隔一秒操作一次 # appendfsync no :不进行持久化

    6、Java客户端 Jedis

    jedis:一款Java操作redis的数据库工具

    jedis使用步骤

    1、导入maven依赖

    <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.3.0</version> </dependency>

    2、使用

    @Test public void test1(){ //1、获取连接 Jedis jedis = new Jedis("localhost",6379); //2、操作 jedis.set("username","zhangsan"); //3、关闭连接 jedis.close(); }

    3、Jedis操作各种redis中的数据结构

    字符串类型 string @Test public void test2(){ //1、获取连接 Jedis jedis = new Jedis();//如果使用空参构造,默认值 "localhost",6379端口 //2、操作 jedis.set("username","zhangsan"); //3、获取 String username = jedis.get("username"); System.out.println(username); //可以使用setex()方法存储可以指定过期时间的 key val jedis.setex("activecode", 20, "hehe");//将activecode:hehe键值对存入redis,并且20S后自动删除该键值对 //4、关闭连接 jedis.close(); } 哈希类型 hash : map格式 @Test public void test3(){ //1、获取连接 Jedis jedis = new Jedis(); //2、操作 //存储hash jedis.hset("user","name","lisi" ); jedis.hset("user","age","23" ); jedis.hset("user","gender","male" ); //获取hash String hget = jedis.hget("user", "name"); System.out.println(hget); //获取hash的所有map中的数据 Map<String, String> map = jedis.hgetAll("user"); System.out.println(map); //3、关闭连接 jedis.close(); } 列表类型 list : linkedlist格式 @Test public void test4(){ //1、获取连接 Jedis jedis = new Jedis(); //2、操作 //list 存储 jedis.lpush("mylist", "a","b","c");//从左边存 jedis.rpush("mylist", "a","b","c");//从右边存 //list 范围获取 List<String> mylist = jedis.lrange("mylist", 0, -1); System.out.println(mylist); //list弹出 String elem = jedis.lpop("mylist"); System.out.println(elem); String elem2 = jedis.rpop("mylist"); System.out.println(elem2); //3、关闭连接 jedis.close(); } 集合类型 set : 不允许重复的元素 @Test public void test5(){ //1、获取连接 Jedis jedis = new Jedis(); //2、操作 //set 存储 jedis.sadd("myset", "java","php","c++"); //set获取 Set<String> myset = jedis.smembers("myset"); System.out.println(myset); //3、关闭连接 jedis.close(); } 有序集合类型 sortedset : 不允许重复的元素,且元素有顺序 @Test public void test6(){ //1、获取连接 Jedis jedis = new Jedis(); //2、操作 // sortedset存储 jedis.zadd("mysort", 3, "亚瑟"); jedis.zadd("mysort", 30, "后羿"); jedis.zadd("mysort", 55, "孙悟空"); //sortedset获取 Set<String> mysort = jedis.zrange("mysort", 0, -1); System.out.println(mysort); //3、关闭连接 jedis.close(); }

    jedis连接池JedisPool使用步骤

    1、创建JedisPool连接池对象

    2、创建方法getResources()方法获取Jedis连接

    @Test public void test7() { //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", "haha"); //4、关闭 归还到连接池中 jedis.close(); }
    Processed: 0.009, SQL: 8