centos6下安装使用redis

centos6下安装使用redis

安装redis

  1. yum添加epel源

    yum install epel-release
    
  2. 用yum安装redis

    yum install redis
    
  3. Redis 服务端配置

    vim /etc/redis.conf
    
    /var/lib/redis
    

启动与停止

  • 启动

    service redis start
    
  • 停止

    service redis stop
    
  • 重启

    service redis restart
    
  • 查看是否启动

    ps aux|grep redis
    

    若出现如下东西,就代表已启动,第一列是进程名

    redis      2059  0.2  0.5 139488  5380 ?        Ssl  03:24   0:00 /usr/bin/redis-server 127.0.0.1:6379
    
  • 设置开机自启

    第一次设置需要在自启动配置中添加redis

    chkconfig --add redis
    

    启动开机自启

    chkconfig redis on
    

    关闭开机自启

    chkconfig redis off
    
  • 连接redis-server

    redis在安装的时候自带了一个客户端redis-cli,我们可以使用它来连接redis

    redis-cli -p 6379 -h 127.0.0.1
    

    其中,6379是默认端口号,127.0.0.1是ip地址

基本操作

redis存储的格式类似于python的字典

在这里仅记录常用的操作,详细操作请看redis命令文档

查看redis中所有的key

keys *

删除指定键值对

del key

删除所有键值对

flushall

字符串操作

  • 添加

    set key value
    

    如果key不存在,就创建一个键值对,如果已存在,则更新替换其值

    注意:在添加的时候,如果value中存在空格,则需要用双引号把value括起来,如果value中存在一些特殊字符,可以用转义字符,如\"表示双引号

  • 获取

    get key
    

    如果key不存在,则返回一个nil

  • 设置过期时间

    如果没有设置过期时间,则是永久有效,过期时间timeout的单位是秒

    在设置值之后指定过期时间:

    expire key timeout
    

    在设置值的时候指定过期时间:

    set key value ex timeout
    
  • 查看过期时间

    ttl key
    

    若已过期,则返回-2

列表操作

  • 创建和添加列表元素

    • 在key表头(左边)添加元素:
    lpush key value [value ...]
    
    • 在key表尾(右边)添加元素:
    rpush key value [value ...]
    

    如果key不存在,则在执行语句上面语句时会自动创建,并添加指定元素

    当key存在,但不是列表类型时会报错

  • 查看列表中的元素

    lrange key start stop
    

    其中start和stop分别表示起始(从0开始)和结束(包括)位置,如果想要查看所有元素,则指定start和stop分别为0 -1

    可见,redis的索引与python类似,负数表示从右边开始的第几个。

  • 移除列表中的元素

    • 移除头元素

      lpop key
      
    • 移除尾元素

      rpop key
      
    • 移除指定元素

      lrem key count value
      

      删除key列表中值为value的元素,其中count表示删除元素的个数,count表示删除的个数,具体如下

      • count>0:从表头开始删除count个值为value的元素
      • count<0:从表尾开始删除-count个值为value的元素
      • count=0:删除所有值为value的元素
  • 获取列表中元素个数

    llen key
    
  • 获取对应索引的元素

    lindex key index
    
  • 更新列表中的元素

    lset key index value
    

集合操作

  • 创建和添加集合元素

    sadd key value [value ...]
    
  • 查看元素

    smembers key member
    
  • 移除元素

    srem key member [member...]
    
  • 查看集合中元素个数

    scard key
    
  • 获取多个集合的交集

    sinter key [key...]
    
  • 获取多个集合的并集

    sunion key [key...]
    
  • 获取多个集合的差集

    sdiff key [key...]
    

哈希操作

在redis中,字典中的字典叫做哈希表

  • 创建哈希表并添加字段值

    hset key field value [field value...]
    

    将哈希表key中的字段field值设置为value

  • 获取哈希中field对应的值

    hget key field
    
  • 删除field中的某个field

    hdel key field [field]
    
  • 获取哈希表中所有的field和value

    hgetall key
    
  • 获取哈希表中所有的field

    hkeys key
    
  • 获取哈希表中所有的value

    hvals key
    
  • 获取哈希表中总共有多少键值对

    hlen key
    

事务操作

Reids事务可以一次执行多个命令,事务具有如下特征

  1. 隔离操作:事务中的所有命令都会序列化、按顺序执行,不会被其他命令打扰
  2. 原子操作:事务中的命令要么全部被执行,要么全部不执行,不可分割
  • 开启事务

    multi
    

    后面的命令,都会加入事务中

  • 执行事务

    exec
    
  • 取消事务

    discard
    

    会将multi后的所有命令都取消

  • 监视key

    watch key [key...]
    

    监听一个或者多个key,如果在事务开始之后,事务执行之前这些key被其他命令所改动,那么事务将不会执行

    事务执行完后,将会自动取消监视

  • 取消监视

    unwatch
    

发布/订阅

  • 订阅频道的消息

    subscribe channel [channel]
    

    这样会一直监听这个频道有没有消息

  • 在某个频道发布消息

    publish channel message
    

    发布消息,此时在订阅该频道的链接会接收到此消息

参考网站

持久化

持久化,就是把内存中的数据保存到硬盘当中,类似于备份,redis有两种持久化的机制(文件):

  1. RDB(redis database)
  2. AOF(Append-only file)

这两种机制都可以在配置文件中进行相关的设置

编辑配置文件

vim /etc/redis.conf

备份文件的位置

cd /
cd /var/lib/redis

RDB和AOF详情与比较

RDBAOF
开启默认就是开启的把配置文件的appendonly置为yes
关闭把配置文件中所有的save注释掉把配置文件的appendonly置为no
同步机制配置文件的save 900 1,意思是:计时器到900秒时,如果数据至少进行了1次更改,就做一次同步备份配置文件的appendfsync always代表每次数据更新同步,appendfsync everysec代表每秒同步
存储内容存储的是redis中具体的值,也就是内存里的值存储的是执行的更新数据命令
存储文件路径dir指定路径,dbfilename指定文件名dir指定路径,appendfilename指定文件名
优点(1)存储数据到文件会进行压缩,文件体积比aof小
(2)因为存储的是redis具体的值,所以恢复速度快
(3)更适合于备份
(1)同步的频率更高,服务器故障后丢失的数据少
(2)存储不需要压缩,只是将命令直接加入文件,速度快
(3)如果aof文件过大,会对存储的命令重写,删除冗余的命令,保留最小命令集合
缺点(1)每次同步都会重新保存整个Redis中的数据,所以当数据量较大或者CPU紧张时,比较耗时
(2)同步需要时间,且是按照一定频率来的,如果在同步前发生了故障,就会造成数据丢失
(1)文件没有压缩,体积大
(2)恢复速度慢
(3)从整体效率上来说,由于频率高,所以效率可能会有点慢
(4)当服务器故障时,数据丢失少

如何选择

如果数据非常重要,不能容许丢失,那么就用AOF,否则,就用RDB,如果服务器性能足够,你还可以两个都用(小孩子才做选择题)

手动备份

BGSAVE

使用这条命令,可以在后台新建一个子进程fork,由子进程来备份,主进程继续处理数据,上面两种同步机制也都是定时/定次用这条命令实现的

设置密码

打开配置文件,在命令模式下使用/来搜索requirepass,这个变量就是密码变量,默认时注释的,也就是默认没有密码

将requirepass取消注释后,赋值为你想要设置的密码即可,例如

requirepass password

重启应用配置后,依然可以连接,但只有输入密码后才可以操作数据库,如果不输入就操作,会报错的,输入密码有两种方式

  1. 连接后输入

    auth password
    
  2. 连接时输入

    -a参数指定密码

    redis-cli -p 6379 -h 127.0.0.1 -a password
    

从其他主机连接redis

在配置文件中,搜索bind,这个变量就是设置允许其他主机用哪个IP地址来连接,也就是说,这个bind应该设置成运行redis的机器的地址,而不是要连接reids的主机的地址

bind 127.0.0.1 本机的ip地址

注意注意注意:一定要让防火墙开放端口(踩过坑)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值