关于Redis简介及Window下的分片集群案例(一)

来源:互联网 发布:安华卫浴知乎 编辑:程序博客网 时间:2024/06/06 03:54

1.Redis简介

Redis ~ REmote DIctionary Server,可以直接理解为远程字典服务。
官网:http://redis.io
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
可以充当缓存、队列等作用。

2.Redis的特性
1)多种数据类型存储

  •  字符串类型  散列类型  列表类型  集合类型  有序集合类型

2)内存存储与持久化

  •  内存的读写速度远快于硬盘  自身提供了持久化功能(RDB、AOF两种方式)

RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。
AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小。
AOF十分强大,正由于这个特性,它可以轻松实现主从复制。
Redis 还可以同时使用 AOF 持久化和 RDB 持久化。在这种情况下,当 Redis 重启时,它会优先使用 AOF 文件来还原数据集,因为 AOF 文件保存的数据集通常比 RDB 文件所保存的数据集更完整。
甚至可以关闭持久化功能,让数据只在服务器运行时存在。
3)功能丰富

  •  可以用作缓存、队列、消息订阅/发布  支持键的生存时间  按照一定规则删除相应的键

4)简单稳定

  •  相比SQL而言更加简洁  不同语言的客户端丰富  基于C语言开发,代码量只有3万多行

3.Redis安装和启动

  1. Windows(64位)下安装Redis :http://www.redis.net.cn/download/
  2. Windows(64位)安装系统服务启动
    注册服务:
  redis-server --service-install redis.windows.conf --loglevel verbose
卸载服务:
 redis-server --service-uninstall
启动Redis:
 redis-server --service-start
停止Redis:
  redis-server --service-stop

4.启动Redis

把下载好的Redis解压好之后,在window下打开cmd窗口:
把路径切换到你Redis的解压目录如下所示:
这里写图片描述

这里写图片描述
然后在cmd窗口启动Redis命令,就启动了Redis了:
这里写图片描述

5.操作Redis
刚才那个启动Redis的按钮不要关闭,再重新打开一个cmd窗口:
这里写图片描述
默认连接:IP 127.0.0.1 端口 6379
redis-cli
指定IP端口:
redis-cli –h 127.0.0.1 –p 6379
使用ping命令测试与客户端和服务器链接是否正常

6.Redis简单命令
赋值与取值:
SET key value
GET key
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set test 123
OK
127.0.0.1:6379> set test1 ab
OK
127.0.0.1:6379> keys *
1) “test1”
2) “test”
127.0.0.1:6379> get test
“123”
127.0.0.1:6379> get test1
“abc”

下一篇介绍java操作Redis小案例!!