Redis安装与配置

 redis作为NoSQL数据库的一种应用,响应速度和命中率上还是比较高效的。项目中需要用集中式可横向扩展的缓存框架,做了一点调研,即便redis、memcached存在效率上的差异(具体比较参考http://timyang.net/data/mcdb-tt-redis/),但其实都能满足目前项目的需求;但是redis还是比较风骚的,支持链表和集合操作,支持正则表达式查找key,目前项目缓存的结果大多是链表,如果链表新增或者修改数据的话,redis就体现出了极大的优势(memcached只能重新加载链表,redis可以对链表新增或者修改)

1:下载redis
下载地址 http://code.google.com/p/redis/downloads/list
推荐下载redis-1.2.6.tar.gz,之前这个版本同事已经有成功安装运行的经验,redis-2.0.4.tar.gz 这个版本我安装后无法操作缓存数据,具体原因后续再说

2:安装redis
下载后解压 tar zxvf redis-1.2.6.tar.gz 到任意目录,例如/usr/local/redis-1.2.6

解压后,进入redis目录
    cd /usr/local/redis-1.2.6
    make PREFIX=/usr/local/redis install
  
    //安装完成后,会/usr/local/redis/bin/目录下生成5个可执行文件, 
    ls /usr/local/redis/bin/  
    redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis-server  
    redis-server:Redis服务器的daemon启动程序  
    redis-cli:Redis命令行操作工具。  
    redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能  
        redis-benchmark -n 100000 -c 60
        向redis服务器发送100000个请求,每个请求附带60个并发客户端
    redis-check-dump: 检查file.rdb 文件  
    redis-check-aof:检查file.aof 文件
拷贝文件
mkdir /usr/local/redis/etc
cp redis.conf /usr/local/redis/etc  这个文件时redis启动的配置文件


3:修改配置
修改配置之前,请将redis.conf copy一份到/etc/目录下
    daemonize no
改成
    daemonize yes
这两个参数
    loglevel warning 
    logfile /var/log/redis.log 
取消注释
    syslog-enabled no #这个改成syslog-enabled yes
    syslog-facility local0
数据文件目录
    # The working directory.
    #
    # The DB will be written inside this directory, with the filename specified
    # above using the 'dbfilename' configuration directive.
    #
    # Also the Append Only File will be created inside this directory.
    #
    # Note that you must specify a directory here, not a file name.
    dir /var/db/redis
内存,连接数设置

    maxmemory 256000000
    maxclients 500

设置内存分配策略(可选,根据服务器的实际情况进行设置)
/proc/sys/vm/overcommit_memory
可选值:0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

值得注意的一点是,redis在dump数据的时候,会fork出一个子进程,理论上child进程所占用的内存和parent是一样的,比如parent占用的内存为8G,这个时候也要同样分配8G的内存给child,如果内存无法负担,往往会造成redis服务器的down机或者IO负载过高,效率下降。所以这里比较优化的内存分配策略应该设置为 1(表示内核允许分配所有的物理内存,而不管当前的内存状态如何)

开启redis端口,修改防火墙配置文件
    vi /etc/sysconfig/iptables

加入端口配置
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

重新加载规则
    service iptables restart 

4:启动redis服务
    [root@Architect redis]# pwd
    /usr/local/redis
    [root@Architect redis-1.2.6]# bin/redis-server /etc/redis.conf

查看进程,确认redis已经启动

    [root@Architect redis-1.2.6]# ps -ef | grep redis
    root       401 29222  0 18:06 pts/3    00:00:00 grep redis
    root     29258     1  0 16:23 ?        00:00:00 redis-server /etc/redis.conf

如果这里启动redis服务失败,一般情况下是因为redis.conf文件有问题,建议检查或找个可用的配置文件进行覆盖,避免少走弯路,这里建议,修改redis.conf,设置redis进程为后台守护进程

    # By default Redis does not run as a daemon. Use 'yes' if you need it.
    # Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
    daemonize yes

5:测试redis
    [root@Architect redis-1.2.6]# redis-cli
    redis> set name songbin
    OK
    redis> get name 
    "songbin"

6:关闭redis服务
    redis-cli shutdown

redis服务关闭后,缓存数据会自动dump到硬盘上,硬盘地址为redis.conf中的配置项dbfilename dump.rdb所设定
强制备份数据到磁盘,使用如下命令

    redis-cli save 或者 redis-cli -p 6380 save(指定端口)


7:启动 Redis 服务
src/redis-server或者src/redis-server redis.conf

src/redis-server redis.conf 1>log.log 2>errlog.log

1为标准输出,2为错误输出
将 Redis 作为 Linux 服务随机启动
vi /etc/rc.local, 加入代码:

/root/install/redis-2.4.9/src/redis-server

 

 


=========================redis.conf更多配置==========================
《 EOF
    #daemonize:是否以后台daemon方式运行
  
    daemonize yes
  
    #pidfile:pid文件位置
  
    pidfile /var/run/redis.pid
  
    #bind:监听的ip地址
  
    bind 10.0.100.70
  
    #port:监听的端口号
  
    port 6379
  
    #timeout:请求超时时间,单位秒
  
    timeout 120
  
    #loglevel:log信息级别,支持四个级别,debug,notice,verbose,warning
  
    loglevel warning
  
    #日志文件位置
  
    logfile /usr/local/redis/var/redis.log
  
    #databases:开启数据库的数量
  
    databases 16
  
    ##snapshoot
  
    #save * *:保存快照的频率,第一个*表示多长时间,第二个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
  
    #在900秒之内,redis至少发生1次修改则redis抓快照到磁盘
  
    save 900 1
  
    #在300秒之内,redis至少发生100次修改则redis抓快照到磁盘
  
    save 300 100
  
    #在60秒之内,redis至少发生10000次修改则redis抓快照到磁盘
  
    save 60 10000
  
    #rdbcompression:是否使用压缩
  
    rdbcompression yes
  
    #dbfilename:数据快照文件名(只是文件名,不包括目录)
  
    dbfilename dump.rdb
  
    #dir:数据快照的保存目录(这个是目录)
  
    dir /usr/local/redis/var
  
    ##aof
  
    #appendonly:是否开启appendonlylog,AOF是另一种持久化方式,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
  
    appendonly no
  
    #appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
  
    appendfsync everysec
  
    no-appendfsync-on-rewrite no
  
    auto-aof-rewrite-percentage 100
  
    auto-aof-rewrite-min-size 64mb
  
    ##slow log
  
    #如果操作时间大于0.001秒,记录slow log,这个log是记录在内存中的,可以用redis-cli slowlog get 命令查看
  
    slowlog-log-slower-than 10000
  
    #slow log 的最大长度
  
    slowlog-max-len 128
  
    ##virtual memory
  
    #是否使用虚拟内存
  
    vm-enabled no
  
    #swap文件,不同redis swap文件不能共享。而且生产环境下,不建议放在tmp目录。
  
    vm-swap-file /tmp/redis.swap
  
    #vm大小限制。0 不限制,建议60-80% 可用内存大小
  
    vm-max-memory 0
  
    #根据缓存内容大小调整,默认32字节
  
    vm-page-size 32
  
    #page数。每 8 page 会占用1字节内存
  
    vm-pages 134217728
  
    #m 最大io线程数。注意: 0 标志禁止使用vm(开关真多)
  
    vm-max-threads 4
  
    #
  
    hash-max-zipmap-entries 512
  
    hash-max-zipmap-value 64
  
    #
  
    list-max-ziplist-entries 512
  
    list-max-ziplist-value 64
  
    set-max-intset-entries 512
  
    zset-max-ziplist-entries 128
  
    zset-max-ziplist-value 64
  
    activerehashing yes
  
    ##limit
  
    #最大使用内存单位<bytes>,默认情况下redis会占用可用的所有内存
  
    maxmemory 256000000
  
    #maxclients 最大连接数, 0 表示不限制
  
    maxclients 1024
  
    ##replication
  
    requirepass dongnan
  
    #slave
  
    #master的ip地址与端口号
  
    #slaveof 10.0.100.70 6379
  
    #设置slave到master的认证
  
    #masterauth dongnan
  
    #在master服务器挂掉或者同步失败时,从服务器是否继续提供服务
  
    slave-serve-stale-data yes
  
    EOF

===========================



客户端连接
src/redis-cli

停止redis服务:
src/redis-cli shutdown

增删改查:

keys *
取出当前匹配的所有key

> exists larry
(integer) 0

当前的key是否存在

del lv
删除当前key

expire
设置过期时间

> expire larry 10
(integer) 1

> move larry ad4
(integer) 1

移动larry键值对到ad4数据库

> persist lv
(integer) 1
移除当前key的过期时间

randomkey

随机返回一个key

rename
重命名key

type
返回值的数据类型

 type testlist
list


> ping
PONG

测试连接是否还在

>echo name

"larry"

打印

> select ad4databank
OK
数据库切换

> quit
退出连接

> dbsize
(integer) 12

当前数据库中key的数量

> info
服务器基本信息

monitor

实时转储收到的请求

config get
获取服务器的参数配置

flushdb
清空当前数据库

flushall
清除所有数据库

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
【4层】3100平米综合办公楼毕业设计(含计算书、建筑结构图) 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值