Redis的基本使用

Redis介绍

Redis(Remote Dictionary Server)远程字典服务,是一个开源的使用 ANSI C语言编写、支持网络、可基于内存亦可持久性的日志型、key-value 数据库,并提供多种语言的 API,是当下最流行的NoSQL技术之一。

Redis八种数据类型

2.1. String类型

  1. 设值与取值
    Redis的基本使用_第1张图片
  2. 自增自减
    Redis的基本使用_第2张图片
  3. 范围取值
    Redis的基本使用_第3张图片
  4. 字符替换
    在这里插入图片描述
  5. setex和setnx
    Redis的基本使用_第4张图片
  6. 同时取和设值多个值
    Redis的基本使用_第5张图片
    对象值的设置与获取
    Redis的基本使用_第6张图片
  7. getset方法,先get后set,不存在则返回nil
    Redis的基本使用_第7张图片

2.2. List数据类型

  1. list常用作栈或者队列,指令以l开头表示左侧队列执行,r表示右侧队列执行。
    Redis的基本使用_第8张图片
  2. 弹出操作pop

Redis的基本使用_第9张图片
3. list索引取值与长度
Redis的基本使用_第10张图片
4. 移除指定的值
Redis的基本使用_第11张图片
5. ltrim截断
Redis的基本使用_第12张图片
6. rpoplpush: 移除list的最后一个元素,并将它移动到新列表中
Redis的基本使用_第13张图片
7. lset: 修改指定下标的值
Redis的基本使用_第14张图片
8. linsert: 在列表中的某个值前面或者后面插入值
Redis的基本使用_第15张图片

2.3. set数据类型

  1. 元素的增删与获取
    Redis的基本使用_第16张图片
    Redis的基本使用_第17张图片
    Redis的基本使用_第18张图片
  2. 差集、交集、并集
    Redis的基本使用_第19张图片

2.4. hash数据类型

hash数据类型也是key-value形式,只不过value为map形式。

  1. 常用的增删取值操作
    Redis的基本使用_第20张图片
    Redis的基本使用_第21张图片
  2. 属性值的增加与减少
    Redis的基本使用_第22张图片
  3. hsetnx: 不存在则设置
    Redis的基本使用_第23张图片

2.5. zset数据类型

zset为有序set数据类型。
Redis的基本使用_第24张图片
Redis的基本使用_第25张图片

2.6. geospatial数据类型

geo数据类型用来计算地理位置信息,有效的位置范围为经度从 -180 度到 180 度,纬度从 -85.05112878 度到 85.05112878 度,其底层使用zset实现,zset的操作对geo类型也适用。
添加如下模拟数据:
Redis的基本使用_第26张图片
获取两个位置间的距离,默认以米作为单位,还可以指定千米(km)、英里(mi)、英尺(ft)。
Redis的基本使用_第27张图片
georadius 以给定的经纬度为中心,找出某一半径内的元素
Redis的基本使用_第28张图片
在这里插入图片描述

2.7. hyperloglog数据类型

hyperloglog常用来统计网站的每日访问量,即UV,UV是指通过互联网访问、浏览这个网页的自然人。访问的一个电脑客户端为一个访客,一天内同一个访客仅被计算一次。hyperloglog 的优点是占用内存小,并且是固定的。存储 2^64 个不同元素的基数,只需要 12 KB 的空间。但是也可能有 0.81% 的错误率。
Redis的基本使用_第29张图片

2.8. bitmap位图

bitmap就是通过最小的单位bit来进行0或者1的设置,表示某个元素对应的值或者状态。一个bit的值,或者是0,或者是1,常用来统计只有两个取值的一些变量,下面以统计一周的打卡来说明:
Redis的基本使用_第30张图片

Redis事务

redis事务的本质是一组命令,一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行,一次性、顺序性、排他性的执行一组命令。
Redis 事务的命令:

  • 开启事务:multi
  • 命令入队
  • 执行事务:exec
  • 撤销事务:discard
    Redis的基本使用_第31张图片
    在事务执行过程中遇到编译型异常,比如命令有误,事务中的所有指令都不会执行。
    Redis的基本使用_第32张图片
    事务执行遇到运行时异常,如事务中某条命令执行结果报错,其他命令是可以正常执行的,错误命令抛出异常。
    Redis的基本使用_第33张图片
    Redis的监视(watch):watch命令可以监控一个或多个key,一旦其中有一个key被修改(或删除),之后的事务就不会执行。监控一直持续到exec命令(事务中的命令是在exec之后才执行的,所以在multi命令后可以修改watch监控的键值)。假设我们通过watch命令在事务执行之前监控了多个Keys,倘若在watch之后有任何Key的值发生了变化,exec命令执行的事务都将被放弃,同时返回Null multi-bulk应答以通知调用者事务执行失败。
    Redis的基本使用_第34张图片
    Redis的基本使用_第35张图片
    另一个线程:
    在这里插入图片描述

Springboot整合Redis

  1. 导入redis依赖和fastjson依赖
		<dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-data-redisartifactId>
            <version>2.5.0version>
        dependency>


        <dependency>
            <groupId>com.alibabagroupId>
            <artifactId>fastjsonartifactId>
            <version>1.2.76version>
        dependency>
  1. redis配置
spring.redis.host=localhost
spring.redis.port=6379
  1. 测试使用
@SpringBootTest
public class RedisTest {

    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    public void testRedis() {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("name", "xiaoming");
        jsonObject.put("age", 20);
        jsonObject.put("job", "student");

        // 保存到redis
        redisTemplate.opsForValue().set("stu1", jsonObject.toJSONString());
        System.out.println(redisTemplate.opsForValue().get("stu1"));


    }

}

你可能感兴趣的:(个人博客网站搭建,redis)