redis基础

1.命令操作

1.redis的数据结构
*redis存储的是key,value格式的数据,其中key都是字符串,value有五种不同的数据结构
*value的数据结构
1)字符串类型String
2)哈希类型hash:map格式
3)列表类型list:linkedlist格式
4)集合类型set
5)有序集合类型sortedset

2.字符串类型 string:
(1)存储:set key value
(2)获取:get key
(3)删除:del key

3.哈希类型 hash:
(1)存储:hset key field value
(2)获取:
*hget key field:获取指定的field对应的值
*hgetall key:获取所有的field和value

(3)删除:hdel key field

4.列表类型 list:可以添加一个元素到列表的头部(左边)或者尾部(右边)
在这里插入图片描述
1.添加:
lpush key value:将元素加入列表左边
rpush key value:将元素加入列表右边

2.获取:
lrange key start end :范围获取

3.删除:
lpop key:删除列表最左边的元素,并将元素返回
rpop key:删除列表最右边的元素,并将元素返回

5.集合类型 set :不允许重复元素
1.存储:sadd key value
2.获取:smembers key:获取set集合中所有的元素
3.删除:srem key value:删除set集合中的某个元素

6.有序集合 sortedset:不允许重复元素,且元素有顺序
1.存储:zadd key score value:
2.获取:zrange key start end
3.删除:zren key value

7.通用命令:
1.keys *:查询所有的键
2.type key:获取键对应的value的类型
3.del key:删除指定的key value

2.持久化

1.redis是一个内存数据库,当redis服务器重启或者电脑重启,数据会丢失,可以将redis内存中的数据持久化保存到硬盘的文件中。
2.redis持久化机制:
(1)RDB:默认方式,不需要进行配置,默认就使用这种机制
*在一定的间隔时间中,检测key的变化情况,然后持久化数据
1.编辑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

2.重启redis服务器,并指定配置文件名称

D:\Javaweb2018\day23_redis\资料\redis \windows-64 (redis-2.8.9>redis-serWer.exe relis.windows.conf

(2)AOF:日志记录的方式,可以记录每一条命令的操作。可以每一次命令操作后,持久化数据(不推荐,性能消耗大)
1.编辑redis.windwos.conf文件

appendonly no(关闭aof) --> appendonly yes(开启aof)

#appendfsync always :每一次操作都进行持久化
#appendfsync everysec :每隔一秒进行一次持久化
#appendfsync no :不进行持久化

3.Java客户端 Jedis

*Jedis:一款java操作redis数据库的工具
*使用步骤:
1.下载jedis的jar包
2.使用

  //1.获取连接
        Jedis jedis=new Jedis("localhost",6379);
        //2.操作
        jedis.set("username","zhangsan");
        //3.关闭连接
        jedis.close();

Jedis操作各种数据结构
1)字符串类型String
set
get

  //1.获取连接
        Jedis jedis=new Jedis("localhost",6379);//如果使用空参,默认值localhost 6379

        //2.操作
        //存储
        jedis.set("username","zhangsan");
        //获取
        String username = jedis.get("username");
        System.out.println(username);

        //可以使用setex()方法存储可以存储指定过期时间的key value
        jedis.setex("activecode",20,"hehe ");
        //3.关闭连接
        jedis.close();

2)哈希类型hash:map格式
hset
hget
hgetall

//1.获取连接
        Jedis jedis=new Jedis("localhost",6379);//如果使用空参,默认值localhost 6379

        //2.操作
        //存储hash
        jedis.hset("myhash","name","zhangsi");
        jedis.hset("myhash","age","24");
        jedis.hset("myhash","gender","male");

        //获取hash
        String hget = jedis.hget("myhash", "name");
        System.out.println(hget);

        //获取hash的所有map中的数据
        Map<String, String> myhash = jedis.hgetAll("myhash");
        //keyset
        Set<String> strings = myhash.keySet();
        for (String string : strings) {
            //获取value
            String s = myhash.get(string);
            System.out.println(string+" "+s);
        }

        //3.关闭连接
        jedis.close();
    }

3)列表类型list:linkedlist格式
lpush / rpush
lpop / rpop
lrange start end :范围获取

  //1.获取连接
        Jedis jedis=new Jedis("localhost",6379);
        //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 mylist1 = jedis.lpop("mylist");
        String mylist2 = jedis.rpop("mylist");

        System.out.println(mylist1);
        System.out.println(mylist2);

        //3.关闭连接
        jedis.close();

4)集合类型set
sadd

     //1.获取连接
        Jedis jedis=new Jedis("localhost",6379);
        //2.操作
       //set存储
        jedis.sadd("myset1","java","php","c++");
        //set获取
        Set<String> myset1 = jedis.smembers("myset1");
        System.out.println(myset1);
        //3.关闭连接
        jedis.close();

5)有序集合类型sortedset
zadd

   //1.获取连接
        Jedis jedis=new Jedis("localhost",6379);
        //2.操作
       //sortedset存储
        jedis.zadd("mysortedset",3,"哈哈");
        jedis.zadd("mysortedset",30,"aaa");
        jedis.zadd("mysortedset",25,"bbb");

        //获取
        Set<String> mysortedset = jedis.zrange("mysortedset", 0, -1);
        System.out.println(mysortedset);
        //3.关闭连接
        jedis.close();

3.jdis连接池:JedisPool

使用:
1.创建JedisPool连接池对象
2.调用方法:getResource()方法获取Jedis连接

   //0.创建一个配置对象
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(50);
        jedisPoolConfig.setMaxIdle(10);
        //1.创建Jedis连接池对象
        JedisPool jedisPool = new JedisPool(jedisPoolConfig,"localhost",6379);
        //2.获取连接
        Jedis jedis = jedisPool.getResource();
        //3,使用
        jedis.set("hehe","haha");



        //4.关闭 归还到连接池中
        jedis.close();

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值