jedis使用

redis数据库:存放的全是键值对
五种数据类型:
字符串类型 string : 字符串格式
哈希类型 hash : map格式
列表类型 list : 支持重复元素
集合类型 set : 不支持重复元素
有序集合类型 : 不允许重复元素,且有序

命令操作
字符串类型 string
存储 : set key value
获取 : get key
删除 : del key
哈希类型 hash
存储 : hset key field value // field为哈希表的键
获取 : hget key field //获取map指定键的值
hgetall key // 获取map的所有值

列表类型 list: 可以选择从左边添加元素或者右边添加(用来模拟队列,存储顺序和插入顺序一致)
    添加:
        lpush key value : 将元素加入到列表最左边(注意不是追加)
        rpush key value : 将元素加入到列表最右边
    获取
        lrange key start end : 从左边获取范围类的值(0,-1)获取所有元素
    删除
        lpop key : 删除列表最左边的元素,并将元素返回
        rpop key : 删除列表最右边的元素,并返回 

集合类型 set: 存储顺序和插入顺序不一致 
    存储 : sadd key value(可以一次存放对个value)
    获取 : smembers key : 获取set集合中所有元素
    删除 : srem key value : 删除某个元素

有序集合 sorted set : 关联一个double类型的分数,根据分数排序
    存储 : zadd key score value 
    获取 : zrange key start end
    删除 : zren key value

通用命令
    keys * : 查询所有键
    type key : 查询键对应值的类型
    del key :删除指定key-value

持久化
redis是一个内存数据库, 当redis服务器重启数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中
redis持久化机制(不保证数据绝对安全,可能存在数据丢失):
RDB : 默认方式,不需要进行配置,默认就使用这种机制 //在一定的间隔时间中,检测key的变化情况,然后持久化数据
编辑redis.Windows.conf文件
save 900 1
// 900秒之内有一个键发生改变就进行一次持久化
save 300 10
// 300秒内有10个键发生改变就进行一次持久化
//save 60 10000 修改为:
save 10 5 // 十秒之内有5个键发生变化就持久化一次
重新启动redis服务器,并指定配置文件名称(使用cmd命令启动redis) redis -server.exe redis.windows.conf

    AOF : 日志记录的方式,可以记录每一条命令的操作.可以每一次命令操作后,持久化数据(性能低,不推荐使用)
        编辑redis.Windows.conf文件
            appendonly no(默认) ---> appendonly yes(开启)

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

Java客服端 Jedis
一款java操作redis数据库的工具
依赖环境:
jedis.jar
commons-pool2.jar(必须为pool2.jar否则)

操作方法:
    获取连接
    Jedis jedis = new Jedis(host:"localhost", port:6379);
    操作
    jedis.set("username", "zhangsan")
    关闭连接
    jedis.close();

Jedis操作各种redis中的数据结构
    jedis.setex(key:name, seconds:20, value:zhangsan); //插入限时键值对,20秒后自动删除

Jedis连接池
获取配置连接池对象:
JedisPoolConfig config = new JedisPoolConfig();
配置连接池:
config.setMaxtotal(50); // 设置最大连接数为50
创建连接池:
JedisPoll jedispoll = new JedisPoll()
获取连接:
Jedis jedis = jedispoll.getResource();
使用:
jedis.set(key, value);
归还连接:
jedis.close();

连接池配置参数
最大活动对象数:
redis.pool.maxTotal=1000;
最大能保持 idel状态的对象数:
redis.pool.maxIdle=100;
当池类没有返回对象时,最大等待时间
redis.pool.maxWaitMillis=10000;

原文地址:https://www.cnblogs.com/zhz-8919/p/10872412.html