蜡笔筱新

博客园 首页 新随笔 联系 订阅 管理

一、Redis安装配置

1、安装

  官网地址:http://redis.io/download(根据自己想要的版本下载)

  解压:tar -zvxf redis-3.0.7.tar.gz  将解压后的文件夹放到 /usr/local目录下

  编译测试:接下来在终端中切换到/usr/local/redis目录下,输入:sudo make test

  编译安装:在终端中输入命令:sudo make install

 2、启动redis
  redis-server(看到该图片则成功)
  
=

 

3、基本配置

  在源文件/usr/local/redis/redis.conf 为配置文件

bind 127.0.0.1 绑定地址,需要远程访问则修改

   端口,默认端口6379

prot 6379

  是否为守护进程运行

如果以守护进程运行,则不会在命令行堵塞,类似于服务
如果以非守护进程运行,则当前终端会被堵塞,无法使用。推荐改为key 
daemonize on|yes

  数据文件

dbfilename dump.rdb
数据文件存储路径
  dir的默认值为 ./表示当前目录
  推荐更改为: dir /var/lib/redis

  启动|停止redis

启动:sudo redis-server /usr/local/redis/redis.conf(配置文件的地方)
停止: ps -ajx | grep redis
    kill -9 redis进程id
二、数据库操作

  在线中文操作文档:http://redis.cn/commands.html#gener数据库存储类型

数据类型:
 字符串 string
 哈希 hash
 列表 list
 集合 set
 有序集合 zset

1、string
  特点:
    基本类型
    最大存储512MB数据
    string类型是二进制安全的,可以为任何数据,如数字、图片、序列对象等
  命令:
    设置键值 set key value
    设置键值及过期时间,以秒为单位  setex key seconds value  seconds(秒)
    设置多个键值 mset key value [key value ..]
    
    获取 get key
    通过多个键获取多个值 mget key [key ..]
    
    运算-要求是数字
      incr key  将key对应的value减1
      decr key 将key对应的value减整数
      decrby key decrement 将key对应的value减整数
  其他:
    追加值 append key value
    获取值长度 strlen key

2、键命令
  查找键:keys pattern
  判断键是否存在 exists key [key...] ,存在返回1,不存在返回0
  查看键对应的value的类型 type key
  删除键及对应的值 del key [key ...]
  设置已存在的键过期时间 expire key seconds
  查看有效时间,以秒为单位 ttl key
3、hash
  命令:
    设置单个属性 hset key field value
    设置多个属性 hmset key field value [field value]
    获取一个属性的值 hget key field
    获取多个属性的值 hmget key field [field]
    获取所有属性和值 hgetall key
    返回包含属性的个数 hlen key
    获取所有的值 hlen key
  其他
    判断属性是否存在 hexists key field
    删除属性及值 hdel key field [field ..]
    返回值得字符串长度 hserlen key field

4、 list
  特点:
    列表的元素类型为string
    按照插入顺序排列
    在列表的头部或者尾部添加元素
  命令:
    在头部插入数据 lpush key value
    在尾部插入数据 rpush key value [value ..]
    在一个元素的前|后插入新元素 linsert key before|after pivot(索引) value
    移除并返回key返回的list的第一个元素 lpop key
    移除并返回key返回的list的最后一个元素 rpop key
  其他
    返回存储在key里的list的长度 llen key
    返回列表里索引对应的元素 lindex key index

4、set
  特点:
    无序集合
    元素为string类型,具有唯一性,不可重复
  命令:
    添加元素 sadd key member [member ..]
    返回key集合所有的元素 smembers key 
    返回集合元素个数 scard key
  其他:
    集合交集 sinter key key2 [key...]
    求某集合其他集合的差集 sdiff key key2 [key..]
    求多个集合的合集 sunion key [key..]
    判断元素是否在合集中 sismember key member
5、zset
  特点:
    sorted set 有序集合
    元素为string类型
    元素具有唯一性,不可重复
    每个元素都有关联一个double类型的score,表示权重,通过权重将元素从小到大排序,元素的score可以相同
  命令:
    添加 zadd key score member [score member..]
    获取指定范围内的元素 zrange key start stop
    返回元素个数 zcard key
    返回有序集key中,score值在min和max之间的成员 zcount key min max
    返回有序集合key中,成员member的score值 zsorce key member 

  

三、高级

1、发布订阅
  • 发布者不是计划发送消息给特定的接收者(订阅者),而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅,订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的   
  • 发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑   
  • 客户端发到频道的消息,将会被推送到所有订阅此频道的客户端   
  • 客户端不需要主动去获取消息,只需要订阅频道,这个频道的内容就会被推送过来

消息的格式   

  推送消息的格式包含三部分:

    part1:消息类型,包含三种类型   

    subscribe,表示订阅成功   

    unsubscribe,表示取消订阅成功   

    message,表示其它终端发布消息     

  • 如果第一部分的值为subscribe,则第二部分是频道,第三部分是现在订阅的频道的数量     
  • 如果第一部分的值为unsubscribe,则第二部分是频道,第三部分是现在订阅的频道的数量,如果为0则表示当前没有订阅任何频道,当在Pub/Sub以外状态,客户端可以发出任何redis命令     
  • 如果第一部分的值为message,则第二部分是来源频道的名称,第三部分是消息的内容

命令   

  订阅     

    SUBSCRIBE 频道名称 [频道名称 ...]   

  取消订阅(如果不写参数,表示取消所有订阅)    

    UNSUBSCRIBE 频道名称 [频道名称 ...]   

  发布

    PUBLISH 频道 消息

 

2、主从配置

  一个master可以拥有多个slave,一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构 

posted on 2021-10-30 17:41  蜡笔筱新  阅读(34)  评论(0)    收藏  举报