redis总结

redis

  1. redis属于nosql,

nosql:非关系型数据库,存在内存中, 关系型数据库,存在硬盘
用于缓存,缓存:查询有数据,直接返回,没有数据,查询数据库,存入缓存,返回数据
一般数据缓存只能自己使用,非关系行数据库可以独立部署,数据共享
键值对数据
没有标准
不支持事务
对关系型数据库进行互补,对关系型数据库进行备份

  1. 数据结构
  • 字符串

设置set key value
获取get key
删除del key

  • 哈希 map 键值对

hset key field value
hget key field
hdel key field
hgetall key

  • 列表 linklist 允许重复

左加lpush
右加rpush
获取
1. lrange key start end 范围获取
2. 0 -1获取所有
删除
1. lpop key
2. rpop

  • 集合 set 不允许重复 存入取出顺序不一样

sadd key value
smembers key 获取所有元素
srem key value删除

  • 有序集合 有序不重复

存储 zadd key score value 按照score进行升序排序
获取 range key start end (withscore)
删除 zren key value

  • 通用命令

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

持久化

  • RDB默认设置,检测key的变化,持久化

配置conf
save sec keys :sec毫秒后至少有keys个改变后,持久化一次
启动命令行启动
redis-server.exe redis.windows.conf

  • AOF每一次操作后持久化

配置conf
appendonly no–>改为yes 开启
appendfsync alwanys 每一次都吃就持久化
appendfsync everysec 每秒
appendfsync no 不进行持久化

jedis Java客户端

Java操作redis的工具
下载jar包
api调用
jedis方法名称与redis相同

        //创建链接
        Jedis jedis = new Jedis("127.0.0.1", 6379);//不写即为本机默认值
        //操作
        jedis.set("name","zhangsan");
        //获取
        String name = jedis.get("name");
        System.out.println(name);
        //设置失效时间的语句
        jedis.setex("pass", 20, "123456");//20秒后失效
        //关闭
        jedis.close();

JedisPool连接池

    public void jedisPoolTest(){
            //创建配置
            JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
            jedisPoolConfig.setMaxTotal(50);
            jedisPoolConfig.setMaxIdle(10);
            //创建连接池对象,传入配置
            JedisPool jedisPool = new JedisPool(jedisPoolConfig, "127.0.0.1", 6379);
            //获取连接
            Jedis jedis = jedisPool.getResource();
            //操作
            jedis.set("address","山东");
            //获取
            String address = jedis.get("address");
            System.out.println(address);
            //归还资源,并非真正关闭
            jedis.close();


    }

抽取Jedis连接池的工具类

  • 工具类代码

/**
 * jedis工具类
 */

public class JedisPoolUtils {
    private static JedisPool jedisPool;
    //读取配置
    static {
        InputStream resourceAsStream = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
        Properties properties = new Properties();
        try {
            properties.load(resourceAsStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(Integer.parseInt(properties.getProperty("maxTotal")));
        jedisPoolConfig.setMaxIdle(Integer.parseInt(properties.getProperty("maxIdle")));
        //创建jedis连接池
        jedisPool = new JedisPool(jedisPoolConfig, properties.getProperty("host"), Integer.parseInt(properties.getProperty("port")));
    }
    public static Jedis getJedis(){
        return jedisPool.getResource();
    }
}

  • 工具类使用代码
public void jedisPoolUtilsTest(){
        //获取连接
        Jedis jedis = JedisPoolUtils.getJedis();
        //操作
        jedis.set("age", String.valueOf(16));
        //获取
        String age = jedis.get("age");
        System.out.println(age);
        //关闭
        jedis.close();

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值