Redis入门及SpringDataRedis

Redis是一款非常流行的NoSql数据库

非关系型数据库:
monogoDB redis。

安装:

cd redis
 make && make install

修改config

#bind 127.0.0.1 # 将这行代码注释,监听所有的ip地址,外网可以访问
protected-mode no # 把yes改成no,允许外网访问
daemonize yes # 把no改成yes,后台运行

开机启动
命名新文件redis文件放到/etc/init.d/下,

#!/bin/sh
# chkconfig:   2345 90 10
# description:  Redis is a persistent key-value database
PATH=/usr/local/bin:/sbin:/usr/bin:/bin

REDISPORT=6379
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis.pid

CONF="/home/leyou/redis/redis.conf"

case "$1" in  
    start)  
        if [ -f $PIDFILE ]  
        then  
                echo "$PIDFILE exists, process is already running or crashed"  
        else  
                echo "Starting Redis server..."  
                $EXEC $CONF  
        fi  
        if [ "$?"="0" ]   
        then  
              echo "Redis is running..."  
        fi  
        ;;  
    stop)  
        if [ ! -f $PIDFILE ]  
        then  
                echo "$PIDFILE does not exist, process is not running"  
        else  
                PID=$(cat $PIDFILE)  
                echo "Stopping ..."  
                $REDIS_CLI -p $REDISPORT SHUTDOWN  
                while [ -x ${PIDFILE} ]  
               do  
                    echo "Waiting for Redis to shutdown ..."  
                    sleep 1  
                done  
                echo "Redis stopped"  
        fi  
        ;;  
   restart|force-reload)  
        ${0} stop  
        ${0} start  
        ;;  
  *)  
    echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2  
        exit 1  
esac

设置权限

chmod 755 /etc/init.d/redis

启动

chkconfig --add /etc/init.d/redis
chkconfig redis on
redis-server redis.conf

Redis命令行指令

主要包括

  • @generic:通用命令
  • @string:字符串类型命令
  • @list:队列结构命令
  • @set:set结构命令
  • @sorted_set:可排序的set结构命令
  • @hash:hash命令
    除了generic,其他为常用的物种数据类型
  • string等同于java中的,Map<String,String>
  • list 等同于hava中的,Map<String,List<String>>
  • set等同于java中的,Map<String,Set<String>>
  • sort_set:可排序的set
  • hash等同于java中的,Map<String,Map<String,String>>

通用指令

keys : 查询符合规则的键名列表
示例 keys * 查询所有键
生产环境应禁用
exists:判断键是否存在
存在返回1,不存在返还0
del:删除某个键
select 切换库,默认16个库【0-15】 select 2
expire 设置key的过期时间 expire name 2000 单位秒,默认是无限时长
PERSIST永久存活
TTL:查看一个键的过期时间 TTL name ,-2代表死亡,-1代表未设置时长

字符串指令

最基础的kv结构
SET key value设置键值
GET key 获取指定键的值
GETRANGE key start end 返回key中字符串值的字字符
INCR:自增长
DECR:自减
MSET k1 v1 k2 v2 k3 v3… 批量增加
MGET k1 k2 k3 … 批量查询

hash结构

主键key就叫key hash的key叫hKey,hValue
hset 哈希存,hset key hKey hValue
hget 哈希取,hget key hKey
hgetall 哈希全取 hgetall key
hkeys hkeys key,返回这个hashkey中所有的hkeys
hvalues hkeys key,返回这个hashkey中所有的hvalue
hdel hdel key hkey 删除指定字段,而del会删除整个key


Spring整合Redis

1.SpringDataRedis依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

2.设置host。

3.操作

RedisTemplate为泛型,可以指定k-v类型后,存放的时候自动转换成字节存入redis,底层使用jdk序列化,可读性比较差。推荐使用StringRedisTemplate
redisTemplate里面有几个关键方法
对应Redis五种数据类型,拿到之后可以对响应数据结构的数据进行操作
在这里插入图片描述
在这里插入图片描述
采用单例模式,可以直接链式编程
在这里插入图片描述
redisTemplate.bound*传入key,可以直接操作对应key的所有操作。

通用指令就在redisTemplate


使用中发现保存hashkey的时候 key值前面出现“\xac\xed\x00\x05t\x00\tb”
,这是由于redisTemplate 默认的序列化方式为 jdkSerializeable。
注入以下bean即可解决

@Bean
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(redisConnectionFactory);

        // 使用Jackson2JsonRedisSerialize 替换默认序列化
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);

        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);

        jackson2JsonRedisSerializer.setObjectMapper(objectMapper);

        // 设置value的序列化规则和 key的序列化规则
        redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值