Redis

95 篇文章 0 订阅
6 篇文章 0 订阅

Redis是一个开源的高性能键值对数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,并且借助许多高级层次的接口使其可以胜任,如缓存、队列系统的不同角色。

Redis的特性

  • 多种数据类型存储
  • 字符串类型
  • 散列类型
  • 列表类型
  • 集合类型
  • 有序集合类型
  • 内存存储与持久化
  • 内存的读写速度远快于磁盘
  • 自身提供了持久化功能(ROB、AOP两种方式)
  • 功能丰富
  • 可以做缓存、队列、消息订阅/发布
  • 支持键的生成时间
  • 按照一定规则删除相应的键
  • 简单稳定
  • 相比SQL而言更加简单
  • 不同语言的客户端丰富
  • 基于C语言开发,代码量只有3万多行

Linux版本 2.8.11 : http://download.redis.io/releases/redis-2.8.11.tar.gz

Windows(64位)版本 2.8.9 : https://github.com/MSOpenTech/redis/blob/2.8/bin/release/redis-2.8.9.zip?raw=true

Windows(32位)版本 2.6 : https://github.com/MSOpenTech/redis/blob/2.6/bin/release/redisbin.zip?raw=true

  • Redis Release Notes.docx 文件是关于Redis的描述文件
  • redis.windows.conf  文件是默认的配置文件
  • RedisService.docx  安装手册
文件名说明
Redis-serverRedis服务器
Redis-cliRedis命令行客户端
Reids-benchmarkRedis性能测试工具
Redis-check-aofAOP文件修复工具
Reids-check-dumpRDB文件检查工作

 

 

 

 

 

 

 

  • 注册服务: redis-server --service-install redis.windows.conf --loglevel verbose
  • 卸载服务: redis-server --service-uninstall
  • 启动Redis: redis-server --service-start
  • 停止Redis: redis-server --service-stop

使用PING命令测试与客户端和服务端链接是否正常

redis-cli PING 或 redis-cli redis 127.0.0.1:6379> PING PONG

  • 状态回复(最简单的回复) redis> PING PONG redis> SET test 123 OK
  • 错误回复(以error开头,后面跟着错误信息) redis> TEST (error) ERR unknown command 'TEST‘
  • 整数回复 redis> INCR test_incr (integer) 1
  • 字符串回复(最常用的一种回复,双引号包裹) redis> get test "123"
  • 多行字符串回复 redis> KEYS * 1) "test" 2) "test_incr" 3) "1"
  • 选择1号数据库  select 1
  • Redis不支持自定义数据库名称。
  • Redis不支持为每个数据库设置访问密码
  • Redis的多个数据库之间不是完全隔离的,FLUSHALL命令会清空所有数据库的数据。
  • Redis的多个数据库之间不是完全隔离的,FLUSHBD命令会清空当前数据库的数据。
  • 判断一个键是否存在  exists key (1代表存在0代表不存在)
  • 删除一个或多个键,返回值是删除的键的个数   del key[key...]
  • 获取键值的数据类型   type key[key...]
  • 一个字符串类型键允许存储的数据最大容量是512MB。
  • 递增数字   incr key
  • 增加指定的整数  incrby key incremaent
  • 减少指定的证书  decr  key decrement
  • 向尾部追加值  append key value  如果键不存在则将该键的值设置为value,即相当于 SET key value。返回值是追加后字符串的总长度。
  • 获取字符串长度   strlen key  返回键值的长度,如果键不存在则返回0
  • 同时设置/获取多个键值 mset key value[key value...]   mget key [key ...]
  • Redis在实际使用过程中更多的用作缓存,然而缓存的数据一般都是需要设置生存时间的,即:到期后数据销毁。expire key seconds    TTL查看剩余多少时间
  • 清除生存时间 persist  key  重新设置值也会清除生存时间
  • 生存时间设置单位pexpire key milliseconds

散列类型

  • 赋值与取值
  • HSET key field value
  • HGET key field
  • HMSET key field value [field value ...]
  • HMGET key field [field ...]
  • HGETALL key
  • HSET命令不区分插入和更新操作,当执行插入操作时HSET命令返回1,当执行更新操作时返回0.
  • 判断字段是否存在。 HEXISTS key field
  • 增加数字 HINCRBY key field increment
  • 删除字段,可以删除一个或多个字段,返回值是被删除的字段个数 HDEL key field [field ...]
  • 只获取字段名或字段值 HKEYS key HVALS key
  • 获取字段数量 HLEN key

Redis的应用举例

  • 缓存(数据查询、短连接、新闻内容、商品内容等等)(最多使用)
  • 分布式集群架构中的session分离
  • 聊天室的在线好友类表
  • 任务队列(秒杀、抢购、12306)(左进右出,右进左出)
  • 应用排行榜
  • 网站访问统计
  • 数据过期处理(可以精确到毫秒)

在windows平台下默认的配置文件是:redis.windows.conf,这里面配置了非常多的信息,一般配置保持默认,在一些特定的场景下可以自定义配置,常用到的配置项如下:

port  -- 服务端口 bind – 绑定ip其他ip不能访问(多个ip空格隔开)

databases – 数据库数量,默认16个

daemonize – 设置为守护进程(Linux平台)

maxmemory – 最大的内存大小(1MB、1GB、1m、1g)

maxmemory-policy  -- 达到内存限制后的处理策略(后面详细说明) 修改后配置文件需要重启Redis服务才能生效

 

Redis内存使用优化与存储 http://www.infoq.com/cn/articles/tq-redis-memory-usage-optimization-storage

Redis复制与可扩展集群搭建 http://www.infoq.com/cn/articles/tq-redis-copy-build-scalable-cluster Redis

设计与实现 https://redisbook.readthedocs.org/en/latest/ SpringSource

发布Spring Data Redis 1.0.0 http://www.infoq.com/cn/news/2012/01/spring-data-redis-1-0-0

Redis内存存储结构分析 http://www.searchtb.com/2011/05/redis-storage.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值