webconfig配置redis_webservice配置最大数据量配置webconfig - CSDN
精华内容
参与话题
  • Redis.config配置详解

    千次阅读 2020-07-17 16:25:57
    #Redis配置文件 # 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写) # # 1k => 1000 bytes # 1kb => 1024 bytes # 1m => 1000000 bytes # 1mb => 1024*1024 bytes # 1...

    #Redis配置文件

     

    # 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写)
    #
    # 1k => 1000 bytes
    # 1kb => 1024 bytes
    # 1m => 1000000 bytes
    # 1mb => 1024*1024 bytes
    # 1g => 1000000000 bytes
    # 1gb => 1024*1024*1024 bytes
    #
    # 内存配置大小写是一样的.比如 1gb 1Gb 1GB 1gB
    
    
    # daemonize no 默认情况下,redis不是在后台运行的,如果需要在后台运行,把该项的值更改为yes
    daemonize yes
    
    # 当redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,你可以配置到其他地址。
    # 当运行多个redis服务时,需要指定不同的pid文件和端口
    pidfile /var/run/redis.pid
    
    # 指定redis运行的端口,默认是6379
    port 6379
    
    # 指定redis只接收来自于该IP地址的请求,如果不进行设置,那么将处理所有请求,
    # 在生产环境中最好设置该项
    # bind 127.0.0.1
    
    # Specify the path for the unix socket that will be used to listen for
    # incoming connections. There is no default, so Redis will not listen
    # on a unix socket when not specified.
    #
    # unixsocket /tmp/redis.sock
    # unixsocketperm 755
    
    # 设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接
    # 0是关闭此设置
    timeout 0
    
    # 指定日志记录级别
    # Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
    # debug 记录很多信息,用于开发和测试
    # varbose 有用的信息,不像debug会记录那么多
    # notice 普通的verbose,常用于生产环境
    # warning 只有非常重要或者严重的信息会记录到日志
    loglevel debug
    
    # 配置log文件地址
    # 默认值为stdout,标准输出,若后台模式会输出到/dev/null
    #logfile stdout
    logfile /var/log/redis/redis.log
    
    # To enable logging to the system logger, just set 'syslog-enabled' to yes,
    # and optionally update the other syslog parameters to suit your needs.
    # syslog-enabled no
    
    # Specify the syslog identity.
    # syslog-ident redis
    
    # Specify the syslog facility.  Must be USER or between LOCAL0-LOCAL7.
    # syslog-facility local0
    
    # 可用数据库数
    # 默认值为16,默认数据库为0,数据库范围在0-(database-1)之间
    databases 16
    
    ################################ 快照  #################################
    #
    # 保存数据到磁盘,格式如下:
    #
    #   save <seconds> <changes>
    #
    #   指出在多长时间内,有多少次更新操作,就将数据同步到数据文件rdb。
    #   相当于条件触发抓取快照,这个可以多个条件配合
    #   
    #   比如默认配置文件中的设置,就设置了三个条件
    #
    #   save 900 1  900秒内至少有1个key被改变
    #   save 300 10  300秒内至少有300个key被改变
    #   save 60 10000  60秒内至少有10000个key被改变
    
    save 900 1
    save 300 10
    save 60 10000
    
    # 存储至本地数据库时(持久化到rdb文件)是否压缩数据,默认为yes
    rdbcompression yes
    
    
    # 本地持久化数据库文件名,默认值为dump.rdb
    dbfilename dump.rdb
    
    # 工作目录
    #
    # 数据库镜像备份的文件放置的路径。
    # 这里的路径跟文件名要分开配置是因为redis在进行备份时,先会将当前数据库的状态写入到一个临时文件中,等备份完成时,
    # 再把该该临时文件替换为上面所指定的文件,而这里的临时文件和上面所配置的备份文件都会放在这个指定的路径当中。
    #
    # AOF文件也会存放在这个目录下面
    #
    # 注意这里必须制定一个目录而不是文件
    dir ./
    
    ################################# 复制 #################################
    
    # 主从复制. 设置该数据库为其他数据库的从数据库.
    # 设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步
    #
    # slaveof <masterip> <masterport>
    
    # 当master服务设置了密码保护时(用requirepass制定的密码)
    # slav服务连接master的密码
    #
    # masterauth <master-password>
    
    
    # 当从库同主机失去连接或者复制正在进行,从机库有两种运行方式:
    #
    # 1) 如果slave-serve-stale-data设置为yes(默认设置),从库会继续相应客户端的请求
    #
    # 2) 如果slave-serve-stale-data是指为no,出去INFO和SLAVOF命令之外的任何请求都会返回一个
    #    错误"SYNC with master in progress"
    #
    slave-serve-stale-data yes
    
    # 从库会按照一个时间间隔向主库发送PINGs.可以通过repl-ping-slave-period设置这个时间间隔,默认是10秒
    #
    # repl-ping-slave-period 10
    
    # repl-timeout 设置主库批量数据传输时间或者ping回复时间间隔,默认值是60秒
    # 一定要确保repl-timeout大于repl-ping-slave-period
    # repl-timeout 60
    
    ################################## 安全 ###################################
    
    # 设置客户端连接后进行任何其他指定前需要使用的密码。
    # 警告:因为redis速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行150K次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解
    #
    # requirepass foobared
    
    # 命令重命名.
    #
    # 在一个共享环境下可以重命名相对危险的命令。比如把CONFIG重名为一个不容易猜测的字符。
    #
    # 举例:
    #
    # rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
    #
    # 如果想删除一个命令,直接把它重命名为一个空字符""即可,如下:
    #
    # rename-command CONFIG ""
    
    ################################### 约束 ####################################
    
    # 设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,
    # 如果设置 maxclients 0,表示不作限制。
    # 当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息
    #
    # maxclients 128
    
    # 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key
    # Redis同时也会移除空的list对象
    #
    # 当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作
    #
    # 注意:Redis新的vm机制,会把Key存放内存,Value会存放在swap区
    #
    # maxmemory的设置比较适合于把redis当作于类似memcached的缓存来使用,而不适合当做一个真实的DB。
    # 当把Redis当做一个真实的数据库使用的时候,内存使用将是一个很大的开销
    # maxmemory <bytes>
    
    # 当内存达到最大值的时候Redis会选择删除哪些数据?有五种方式可供选择
    #
    # volatile-lru -> 利用LRU算法移除设置过过期时间的key (LRU:最近使用 Least Recently Used )
    # allkeys-lru -> 利用LRU算法移除任何key
    # volatile-random -> 移除设置过过期时间的随机key
    # allkeys->random -> remove a random key, any key
    # volatile-ttl -> 移除即将过期的key(minor TTL)
    # noeviction -> 不移除任何可以,只是返回一个写错误
    #
    # 注意:对于上面的策略,如果没有合适的key可以移除,当写的时候Redis会返回一个错误
    #
    #       写命令包括: set setnx setex append
    #       incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
    #       sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
    #       zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
    #       getset mset msetnx exec sort
    #
    # 默认是:
    #
    # maxmemory-policy volatile-lru
    
    # LRU 和 minimal TTL 算法都不是精准的算法,但是相对精确的算法(为了节省内存),随意你可以选择样本大小进行检测。
    # Redis默认的灰选择3个样本进行检测,你可以通过maxmemory-samples进行设置
    #
    # maxmemory-samples 3
    
    ############################## AOF ###############################
    
    # 默认情况下,redis会在后台异步的把数据库镜像备份到磁盘,但是该备份是非常耗时的,而且备份也不能很频繁,如果发生诸如拉闸限电、拔插头等状况,那么将造成比较大范围的数据丢失。
    # 所以redis提供了另外一种更加高效的数据库备份及灾难恢复方式。
    # 开启append only模式之后,redis会把所接收到的每一次写操作请求都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态。
    # 但是这样会造成appendonly.aof文件过大,所以redis还支持了BGREWRITEAOF指令,对appendonly.aof 进行重新整理。
    # 你可以同时开启asynchronous dumps 和 AOF
    
    appendonly no
    
    # AOF文件名称 (默认: "appendonly.aof")
    # appendfilename appendonly.aof
    
    
    # Redis支持三种同步AOF文件的策略:
    #
    # no: 不进行同步,系统去操作 . Faster.
    # always: always表示每次有写操作都进行同步. Slow, Safest.
    # everysec: 表示对写操作进行累积,每秒同步一次. Compromise.
    #
    # 默认是"everysec",按照速度和安全折中这是最好的。
    # 如果想让Redis能更高效的运行,你也可以设置为"no",让操作系统决定什么时候去执行
    # 或者相反想让数据更安全你也可以设置为"always"
    #
    # 如果不确定就用 "everysec".
    
    # appendfsync always
    appendfsync everysec
    # appendfsync no
    
    # AOF策略设置为always或者everysec时,后台处理进程(后台保存或者AOF日志重写)会执行大量的I/O操作
    # 在某些Linux配置中会阻止过长的fsync()请求。注意现在没有任何修复,即使fsync在另外一个线程进行处理
    #
    # 为了减缓这个问题,可以设置下面这个参数no-appendfsync-on-rewrite
    #
    # This means that while another child is saving the durability of Redis is
    # the same as "appendfsync none", that in pratical terms means that it is
    # possible to lost up to 30 seconds of log in the worst scenario (with the
    # default Linux settings).
    #
    # If you have latency problems turn this to "yes". Otherwise leave it as
    # "no" that is the safest pick from the point of view of durability.
    no-appendfsync-on-rewrite no
    
    # Automatic rewrite of the append only file.
    # AOF 自动重写
    # 当AOF文件增长到一定大小的时候Redis能够调用 BGREWRITEAOF 对日志文件进行重写
    #
    # 它是这样工作的:Redis会记住上次进行些日志后文件的大小(如果从开机以来还没进行过重写,那日子大小在开机的时候确定)
    #
    # 基础大小会同现在的大小进行比较。如果现在的大小比基础大小大制定的百分比,重写功能将启动
    # 同时需要指定一个最小大小用于AOF重写,这个用于阻止即使文件很小但是增长幅度很大也去重写AOF文件的情况
    # 设置 percentage 为0就关闭这个特性
    
    
    auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb
    
    ################################## SLOW LOG ###################################
    
    # Redis Slow Log 记录超过特定执行时间的命令。执行时间不包括I/O计算比如连接客户端,返回结果等,只是命令执行时间
    #
    # 可以通过两个参数设置slow log:一个是告诉Redis执行超过多少时间被记录的参数slowlog-log-slower-than(微妙),
    # 另一个是slow log 的长度。当一个新命令被记录的时候最早的命令将被从队列中移除
    
    
    # 下面的时间以微妙微单位,因此1000000代表一分钟。
    # 注意制定一个负数将关闭慢日志,而设置为0将强制每个命令都会记录
    slowlog-log-slower-than 10000
    
    
    # 对日志长度没有限制,只是要注意它会消耗内存
    # 可以通过 SLOWLOG RESET 回收被慢日志消耗的内存
    slowlog-max-len 1024
    
    ################################ VM ###############################
    
    ### WARNING! Virtual Memory is deprecated in Redis 2.4
    ### The use of Virtual Memory is strongly discouraged.
    
    # Virtual Memory allows Redis to work with datasets bigger than the actual
    # amount of RAM needed to hold the whole dataset in memory.
    # In order to do so very used keys are taken in memory while the other keys
    # are swapped into a swap file, similarly to what operating systems do
    # with memory pages.
    #
    # To enable VM just set 'vm-enabled' to yes, and set the following three
    # VM parameters accordingly to your needs.
    
    vm-enabled no
    # vm-enabled yes
    
    # This is the path of the Redis swap file. As you can guess, swap files
    # can't be shared by different Redis instances, so make sure to use a swap
    # file for every redis process you are running. Redis will complain if the
    # swap file is already in use.
    #
    # The best kind of storage for the Redis swap file (that's accessed at random)
    # is a Solid State Disk (SSD).
    #
    # *** WARNING *** if you are using a shared hosting the default of putting
    # the swap file under /tmp is not secure. Create a dir with access granted
    # only to Redis user and configure Redis to create the swap file there.
    vm-swap-file /tmp/redis.swap
    
    # vm-max-memory configures the VM to use at max the specified amount of
    # RAM. Everything that deos not fit will be swapped on disk *if* possible, that
    # is, if there is still enough contiguous space in the swap file.
    #
    # With vm-max-memory 0 the system will swap everything it can. Not a good
    # default, just specify the max amount of RAM you can in bytes, but it's
    # better to leave some margin. For instance specify an amount of RAM
    # that's more or less between 60 and 80% of your free RAM.
    vm-max-memory 0
    
    # Redis swap files is split into pages. An object can be saved using multiple
    # contiguous pages, but pages can't be shared between different objects.
    # So if your page is too big, small objects swapped out on disk will waste
    # a lot of space. If you page is too small, there is less space in the swap
    # file (assuming you configured the same number of total swap file pages).
    #
    # If you use a lot of small objects, use a page size of 64 or 32 bytes.
    # If you use a lot of big objects, use a bigger page size.
    # If unsure, use the default :)
    vm-page-size 32
    
    # Number of total memory pages in the swap file.
    # Given that the page table (a bitmap of free/used pages) is taken in memory,
    # every 8 pages on disk will consume 1 byte of RAM.
    #
    # The total swap size is vm-page-size * vm-pages
    #
    # With the default of 32-bytes memory pages and 134217728 pages Redis will
    # use a 4 GB swap file, that will use 16 MB of RAM for the page table.
    #
    # It's better to use the smallest acceptable value for your application,
    # but the default is large in order to work in most conditions.
    vm-pages 134217728
    
    # Max number of VM I/O threads running at the same time.
    # This threads are used to read/write data from/to swap file, since they
    # also encode and decode objects from disk to memory or the reverse, a bigger
    # number of threads can help with big objects even if they can't help with
    # I/O itself as the physical device may not be able to couple with many
    # reads/writes operations at the same time.
    #
    # The special value of 0 turn off threaded I/O and enables the blocking
    # Virtual Memory implementation.
    vm-max-threads 4
    
    ############################### ADVANCED CONFIG ###############################
    
    # 当hash中包含超过指定元素个数并且最大的元素没有超过临界时,
    # hash将以一种特殊的编码方式(大大减少内存使用)来存储,这里可以设置这两个临界值
    # Redis Hash对应Value内部实际就是一个HashMap,实际这里会有2种不同实现,
    # 这个Hash的成员比较少时Redis为了节省内存会采用类似一维数组的方式来紧凑存储,而不会采用真正的HashMap结构,对应的value redisObject的encoding为zipmap,
    # 当成员数量增大时会自动转成真正的HashMap,此时encoding为ht。
    hash-max-zipmap-entries 512
    hash-max-zipmap-value 64
    
    # list数据类型多少节点以下会采用去指针的紧凑存储格式。
    # list数据类型节点值大小小于多少字节会采用紧凑存储格式。
    list-max-ziplist-entries 512
    list-max-ziplist-value 64
    
    # set数据类型内部数据如果全部是数值型,且包含多少节点以下会采用紧凑格式存储。
    set-max-intset-entries 512
    
    # zsort数据类型多少节点以下会采用去指针的紧凑存储格式。
    # zsort数据类型节点值大小小于多少字节会采用紧凑存储格式。
    zset-max-ziplist-entries 128
    zset-max-ziplist-value 64
    
    
    # Redis将在每100毫秒时使用1毫秒的CPU时间来对redis的hash表进行重新hash,可以降低内存的使用
    #
    # 当你的使用场景中,有非常严格的实时性需要,不能够接受Redis时不时的对请求有2毫秒的延迟的话,把这项配置为no。
    #
    # 如果没有这么严格的实时性要求,可以设置为yes,以便能够尽可能快的释放内存
    activerehashing yes
    
    ################################## INCLUDES ###################################
    
    # 指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件
    
    # include /path/to/local.conf
    # include /path/to/other.conf 

     

     

     

     

     

    展开全文
  • redis服务器允许远程访问

    千次阅读 2017-09-02 17:21:43
    默认安装的redis服务器仅能够在localhost模式下访问,有些情况下,我们需要远程客户端可以远程连接到服务器上,这时,我们可以修改redis配置文件的内容。步骤1: 打开/etc/redis.config文件步骤2: 将配置内容bind ...

    默认安装的redis服务器仅能够在localhost模式下访问,有些情况下,我们需要远程客户端可以远程连接到服务器上,这时,我们可以修改redis配置文件的内容。

    步骤1: 打开/etc/redis.config文件

    步骤2: 将配置内容bind 127.0.0.1 改为 bind 0.0.0.0;

    此时,应该可以进行远程连接了。

    如果你发现你还是连不上,可能是你的服务器防火墙开启了,你可以使用systemctl stop firewalld命令来临时关闭防火墙(测试环境下,生产千万别这样干)。

    如果你在测试环境下,你可以禁用防火墙

    systemctl disable firewalld

    这些仅仅在你本地开发测试的时候才这样做。

    展开全文
  • C# Redis实战(三)

    万次阅读 2013-12-12 13:50:24
    现在我们需要让我们的程序能正确读取到Redis服务地址等一系列的配置信息,首先,需要在webconfig文件中添加如下信息: <!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访问 ...

    三、程序配置

    C# Redis实战(二)中我们安装好了Redis的系统服务,此时Redis服务已经运行。
    现在我们需要让我们的程序能正确读取到Redis服务地址等一系列的配置信息,首先,需要在Web.config文件中添加如下信息:
    <?xml version="1.0" encoding="utf-8"?>
    <!--
      有关如何配置 ASP.NET 应用程序的详细信息,请访问
      http://go.microsoft.com/fwlink/?LinkId=169433
      -->
    <configuration>
      <configSections>
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        <section name="RedisConfig" type="RedisDemo.RedisConfigInfo, RedisDemo"/>
      </configSections>
      <RedisConfig WriteServerList="127.0.0.1:6379" ReadServerList="127.0.0.1:6379" MaxWritePoolSize="60"
            MaxReadPoolSize="60" AutoStart="true" LocalCacheTime="180" RecordeLog="false">
      </RedisConfig>
      <connectionStrings>
        <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-RedisDemo-20131125110945;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-RedisDemo-20131125110945.mdf" />
      </connectionStrings>
    
    </configuration>

    了以上信息还不够,还需要用C#代码来读取并且操作,获取Redis配置的程序如下:
     public static RedisConfigInfo GetConfig()
            {
                RedisConfigInfo section = (RedisConfigInfo)ConfigurationManager.GetSection("RedisConfig");
                return section;
            }
    
            public static RedisConfigInfo GetConfig(string sectionName)
            {
                RedisConfigInfo section = (RedisConfigInfo)ConfigurationManager.GetSection("RedisConfig");
                if (section == null)
                    throw new ConfigurationErrorsException("Section " + sectionName + " is not found.");
                return section;
            }

    Redis管理类代码:
     /// <summary>
            /// redis配置文件信息
            /// </summary>
            private static RedisConfigInfo redisConfigInfo = RedisConfigInfo.GetConfig();
    
            private static PooledRedisClientManager prcm;
    
            /// <summary>
            /// 静态构造方法,初始化链接池管理对象
            /// </summary>
            static RedisManager()
            {
                CreateManager();
            }
    
    
            /// <summary>
            /// 创建链接池管理对象
            /// </summary>
            private static void CreateManager()
            {
                string[] writeServerList = SplitString(redisConfigInfo.WriteServerList, ",");
                string[] readServerList = SplitString(redisConfigInfo.ReadServerList, ",");
    
                prcm = new PooledRedisClientManager(readServerList, writeServerList,
                                 new RedisClientManagerConfig
                                 {
                                     MaxWritePoolSize = redisConfigInfo.MaxWritePoolSize,
                                     MaxReadPoolSize = redisConfigInfo.MaxReadPoolSize,
                                     AutoStart = redisConfigInfo.AutoStart,
                                 });
            }
    
            private static string[] SplitString(string strSource, string split)
            {
                return strSource.Split(split.ToArray());
            }
    
            /// <summary>
            /// 客户端缓存操作对象
            /// </summary>
            public static IRedisClient GetClient()
            {
                if (prcm == null)
                    CreateManager();
    
                return prcm.GetClient();
            }


    如需转载,请注明出处,本系列博文示例程序下载地址
    展开全文
  • Spring+SpringMVC+Redis

    千次阅读 2016-12-09 16:43:59
    搭建Redis环境 Redis github下载地址 CSDN资源下载地址 目前官方推荐的最新稳定版本为3.2.1 下载之后直接解压得到以下目录结构 点击redis-server.exe即可启动Redis数据库 看到如下截图,Redis即启动成功 ...
    1. 搭建Redis环境
      Redis github下载地址
      CSDN资源下载地址
      目前官方推荐的最新稳定版本为3.2.1
      下载之后直接解压得到以下目录结构
      这里写图片描述
      点击redis-server.exe即可启动Redis数据库
      这里写图片描述
      看到如下截图,Redis即启动成功
    2. 搭建spring环境
      添加springmvc需要的依赖包
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>4.3.4.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.8.4</version>
            </dependency>
    
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.8.4</version>
            </dependency>
    1. 集成Redis
      ①添加Redis需要的依赖包
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-redis</artifactId>
                <version>1.7.5.RELEASE</version>
            </dependency>
            <!-- Redis客户端 -->
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>2.9.0</version>
            </dependency>
    

    ②配置Redis : spring-redis.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context.xsd">
    
        <!-- 引入redis配置 -->
        <context:property-placeholder location="classpath:redis.properties" ignore-unresolvable="true"/>
    
        <!-- Redis 配置 -->
        <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
            <property name="maxTotal" value="${redis.pool.maxTotal}" />
            <property name="maxIdle" value="${redis.pool.maxIdle}" />
            <property name="maxWaitMillis" value="${redis.pool.maxWaitMillis}" />
            <property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />
        </bean>
    
        <!-- redis单节点数据库连接配置 -->
        <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
            <property name="hostName" value="${redis.ip}" />
            <property name="port" value="${redis.port}" />
            <!-- <property name="password" value="${redis.pass}" /> -->
            <property name="poolConfig" ref="jedisPoolConfig" />
        </bean> 
    
        <!-- redisTemplate配置,redisTemplate是对Jedis的对redis操作的扩展,有更多的操作,封装使操作更便捷 -->
        <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
            <property name="connectionFactory" ref="jedisConnectionFactory" />
        </bean>
    
    </beans>
    

    redis.properties

    redis.pool.maxTotal=105
    redis.pool.maxIdle=10
    redis.pool.maxWaitMillis=5000
    redis.pool.testOnBorrow=true
    redis.ip=127.0.0.1
    redis.port=6379

    这里写图片描述
    4. 配置DispatcherServlet
    这里采用硬编码的方式对DispatcherServlet进行配置,不依赖于web.xml

    package white.yu;
    
    import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
    
    import white.yu.config.RootConfig;
    import white.yu.config.WebConfig;
    
    /**
     * DispatchServlet 拦截器 
     * @author white
     *
     */
    public class MainDispatcherServletInitializer extends
            AbstractAnnotationConfigDispatcherServletInitializer {
    
        /**
         * 配置应用上下文
         */
        @Override
        protected Class<?>[] getRootConfigClasses() {
            return new Class<?>[] { RootConfig.class };
        }
    
        /**
         * 配置web上下文
         */
        @Override
        protected Class<?>[] getServletConfigClasses() {
            return new Class<?>[] { WebConfig.class };
        }
    
        /**
         * 配置DispatcherServlet映射路径
         */
        @Override
        protected String[] getServletMappings() {
            return new String[] { "/" };
        }
    
    }
    

    应用上下文RootConfig

    package white.yu.config;
    
    
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.ComponentScan.Filter;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.FilterType;
    import org.springframework.context.annotation.ImportResource;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.servlet.config.annotation.EnableWebMvc;
    
    
    @Configuration
    @ComponentScan(basePackages = { "white.yu" }, excludeFilters = {
            @Filter(type = FilterType.ANNOTATION, value = Controller.class),
            @Filter(type = FilterType.ANNOTATION, value = EnableWebMvc.class) })
    @ImportResource("classpath:spring/spring-*.xml") //引入redis的配置文件
    public class RootConfig {
    
    
    
    
    }

    web上下文 WebConfig

    package white.yu.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.ViewResolver;
    import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
    import org.springframework.web.servlet.config.annotation.EnableWebMvc;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    import org.springframework.web.servlet.view.InternalResourceViewResolver;
    
    @Configuration
    @EnableWebMvc
    @ComponentScan({ "white.yu.web" })
    public class WebConfig extends WebMvcConfigurerAdapter {
    
        /**
         * 配置视图解析器
         * 
         * @return
         */
        @Bean
        public ViewResolver viewResolver() {
            InternalResourceViewResolver resolver = new InternalResourceViewResolver();
            resolver.setPrefix("/WEB-INF/views/");
            resolver.setSuffix(".html");
            resolver.setExposePathVariables(true);
            return resolver;
        }
    
        /**
         * 配置静态资源处理器
         */
        @Override
        public void configureDefaultServletHandling(
                DefaultServletHandlerConfigurer configurer) {
            super.configureDefaultServletHandling(configurer);
            configurer.enable();
        }
    
    }
    
    1. 编写测试Controller
    package white.yu.web;
    
    import java.util.List;
    
    import javax.annotation.Resource;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.redis.core.ListOperations;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import white.yu.cache.RedisCache;
    import white.yu.entity.User;
    
    @Controller
    @RequestMapping("user")
    public class UserController {
    
        @Resource(name = "redisTemplate")
        private ListOperations<String, User> listOps;
    
        @RequestMapping("/list")
        @ResponseBody
        public List<User> list() {
            // 获取Redis数据库中的所有user数据
            // -1 表示获取数据库中的所有数据
            List<User> range = listOps.range("user", 0, -1);
            return range;
    
        }
    
        @RequestMapping("/add")
        @ResponseBody
        public User list(User user){
            // 添加到Redis数据库
            listOps.leftPush("user", user);
            return user;
    
        }
    
    
    }
    
    展开全文
  • 初始化redis地址如下(将redis地址写在app.conf文件中): address := beego.AppConfig.String("redis_addr") beego.BConfig.WebConfig.Session.SessionProvider = "redis" beego.BConfig.WebConfig.Session....
  • C#客户端(StackExchange.Redis) 连接Redis

    千次阅读 2018-08-04 18:14:50
    废话不多说,以华为云分布式缓存服务(for Redis)为例,分享一下Redis的C#客户端连接配置过程。 1. 首先我在华为云上买了一个Redis缓存实例。同时也买了一台ECS服务器,选了Windows Server 2012。 2. 在ECS上安装...
  • asp.net webconfig session 过期时间设置

    千次阅读 2011-11-22 14:55:01
  • springboot整合redis,实现session共享

    千次阅读 2016-10-29 17:04:25
    Redis对应的jar包 我用的spring-boot-starter-redis版本是1.3.8.RELEASE,spring-session-data-redis版本是1.2.1.RELEASE,这个jar包主要是为了实现session共享做准备。 org.springframework.boot
  • 使用Jwt做权限验证,生成的token存入redis,创建一个拦截器,拦截请求,在拦截器里对请求的token进行验证,当在拦截器里使用个人创建的一个redisUtil bean时,无法自动注入redisUtil bean,redisUtil 为null。...
  • 转载于:https://www.cnblogs.com/mengbin0546/p/10805240.html
  • beego——session控制

    2019-07-09 11:58:13
    beego内置了session模块,目前session模块支持的后端引擎包括memory、cookie、file、mysql、redis、couchbase、memcache、postgres, 用户也可以根据相应的interface实现自己的引擎。 beego中使用相当方便,只要在...
  • 首先创建ASP.NET CORE Web项目,然后按如下顺序操作。   1.添加nuget程序包: Microsoft.AspNetCore.Session;...Microsoft.AspNetCore.DataProtection.Redis; Microsoft.Extensions.Cachi...
  • public class WebConfig { /* @ConditionalOnProperty,这个注解能够控制某个configuration是否生效。具体操作是通过其两个属性name以及havingValue来 实现的,其中name用来从application.properties中读取某个...
  • Redis ASP.NET 配置链接

    2019-06-28 10:42:32
    对于安装Redis后 很是不明白如何建立Redis 和 .net 的链接配置 于是查找了很多的资料 首先第一步:安装ASP.NET NuGet 包 (ServiceStack.Redis) 安装好后 查看引用如下: 这时候 首先在 ASP.NET Web.Config中<...
  • * redis虽然提供了对list set hash等数据类型的支持,但是没有提供对POJO对象的支持,底层都是把对象序列化后再以字符串的方式存储的。* Spring data提供了若干个Serializer,主要包括: ...
  • beego之session 介绍

    2019-04-30 10:54:16
    session 介绍 session 模块是用来存储客户端用户,session 模块目前只支持 cookie 方式的请求,如果客户端不支持 cookie,...目前实现了 memory、file、Redis 和 MySQL 四种存储引擎 1,beego 中使用 session 相当方...
  • beego的session使用方法

    2019-06-20 02:47:52
    beego内置了session模块,目前session模块支持后端引擎包括memory,cookie,file,mysql,redis,couchbase,memcache,postgres,用户也可以根据相应的interface实现自己的引擎。默认引擎是memory(内存) 关于 ...
  • 常见限流方法实现

    千次阅读 2019-06-24 18:10:22
    一、概况 限流防刷我认为有两种,一种是...借助redis,key为用户id+请求的url,value为请求次数,过期时间根据业务情况设置。有漏洞,详情见下面的计数器算法说明。 2.具体实现 SpringBoot项目中,自定义@Access...
  • 最近在研究使用Redis+拦截器实现限流,大致实现方法为在拦截器中用RedisTemplate向Redis中记录请求次数,但是在测试中发现在拦截器中,redisTemplate注入不进来,一直为null。 我的拦截器如下: public class ...
  • WebMvcConfigurerAdapter使用

    千次阅读 2018-04-13 10:58:52
    0 WebMvcConfigurerAdapter主要功能是在spring-mvc中,针对http请求统一性的@bean式的配置...public class WebConfig extends WebMvcConfigurerAdapter {  // 重写各种关于web统一处理方法和配置bean } 1 配置
1 2 3 4 5 ... 20
收藏数 467
精华内容 186
关键字:

webconfig配置redis