Redis初探

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介:    大概在2010年的时候,有一次和一个同事聊天,那个时候知道了Redis,对于技术的追随至今,还没有下载一个Redis版本玩玩,   只有1万多行代码,以性能惊人著称。

   大概在2010年的时候,有一次和一个同事聊天,那个时候知道了Redis,对于技术的追随至今,还没有下载一个Redis版本玩玩,

  只有1万多行代码,以性能惊人著称。新浪微博架构师杨卫华(我一翻微信,原来就是Tim Yang)曾说过:“国内前十大网站的子产品估计用1台Redis就可以满足存储及Cache的需求”

  从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。Redis之父到哪里,哪里就有了新的标签。

  下面就是Redis之父,意大利程序员Salvatore Sanfilippo

0?wx_fmt=jpeg

  我所在的DBAplus社群也策划了周期性的技术发展newsletter,里面有一些信息是我负责收集的,我也和行业里的各路大拿有过简单的沟通,在Redis方面也能够得到第一手的信息。

 Redis的官方是https://redis.io/,国内也有Redis用户组和相关的中文站点,也要感谢这些为社区贡默默贡献的一些人,有了这个圈子,技术人才不会更加孤单。
  Reids目前的最新版本是4.0.1,我从官方下载了之后,发现压缩包竟然只有1.6M,解压后大概就是8.4M左右,这个量级就是很多关系型数据库补丁的大小吧。所以勾起了我的兴趣。深入的谈不上,我局从下载安装部署开始吧。

  从README文档可以看到,官方提供了以下几个很实用的链接。

  Redis数据类型介绍:

 http://redis.io/topics/data-types-intro

  Redis命令行:

 http://redis.io/commands

 Redis官方文档:

  http://redis.io/documentation


# rpm -qa|grep gcc
libgcc-4.4.7-4.el6.x86_64
gcc-4.4.7-4.el6.x86_64

安装部署非常简单,就是一个make命令,当然如果要企业级定制还是有一些需要注意的参数。

 编译之后得到的Redis目录大概是73M

[root@oel1 redis-4.0.1]# du -sh .
73M

 这个目录下有个文件很重要,那就是redis的配置文件redis.conf 

启动的时候,如果不声明,默认就是在这个路径下使用这个默认的redis.conf文件。


启动Redis

 ./redis-server &

默认端口是6379


关闭Redis

# ./src/redis-cli shutdown


进入命令行模式:

[root@oel1 src]# ./redis-cli
127.0.0.1:6379> help
redis-cli 4.0.1

...

因为Reids是存储键值,我们简单测试一下,让我有些惊喜的是,竟然还有命令提示功能,会自动提示你命令的情况。

127.0.0.1:6379> set name jeanron
OK

0?wx_fmt=gif得到刚初始化后的name

127.0.0.1:6379> get name
"jeanron"

Redis支持的数据类型比较丰富,支持多种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合),HyperLogLogs(一种基于概率的数据结构,用于统计集合中不同元素的个数)

比如List,使用rpush,rrange,lrange,lpush来操作  

可以单个推入元素

127.0.0.1:6379> rpush mylist a
(integer) 1
127.0.0.1:6379> rpush mylist b
(integer) 2

列举list里的元素

127.0.0.1:6379> lrange mylist 0 -1
1) "a"
2) "b"

再补充一部分元素到list里面

127.0.0.1:6379> rpush mylist 1 2 3
(integer) 5
127.0.0.1:6379> lrange mylist 0 -1
1) "a"
2) "b"
3) "1"
4) "2"
5) "3"

还可以有队列数据结构的pop操作,比如pop末尾的元素

127.0.0.1:6379> rpop mylist
"3"
127.0.0.1:6379> lrange mylist 0 -1
1) "a"
2) "b"
3) "1"
4) "2"

查看list的长度。

127.0.0.1:6379> llen mylist
(integer) 4

   如果对应的是一些基本的数据类型,还有一些补充的操作可用,比如像序列一样自增。

127.0.0.1:6379> set counter 100
OK
127.0.0.1:6379> incr counter
(integer) 101
127.0.0.1:6379> incr counter
(integer) 102
127.0.0.1:6379> incrby counter 100
(integer) 202


我们也可以管理这些键值对,比如判断是否存在,如果存在留删除。

127.0.0.1:6379> exists counter
(integer) 1
127.0.0.1:6379> del counter
(integer) 1
127.0.0.1:6379> exists counter
(integer) 0

如果想查看整个Redis的状态信息,可以使用命令info,输出会分为几个维度来展现这些信息。

127.0.0.1:6379> info
# Server
redis_version:4.0.1
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:f9229e185138419b
redis_mode:standalone
os:Linux 3.8.13-16.2.1.el6uek.x86_64 x86_64

当然上面的操作只是Redis中九牛一毛的操作,还是很多的内容自己要细化学习。



最后需要说明的是,今天是抗日战争胜利纪念日,为先烈和英雄致敬。

0?wx_fmt=jpeg




相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
NoSQL 数据库 Redis
【Redis】Redis 初探
一 简介   Redis 是一款完全开源免费的高性能的key-value数据库,可以作为缓存,kv结构存储和队列,目前在互联网行业比较广泛使用。   Redis作为Key-value型数据库,它提供了Key-Value 映射关系。
991 0
|
NoSQL API PHP
redis 初探
2014年6月24日 17:50:57 解压redis后进入源码目录,只用执行make命令就可以完成安装了 安装完成后到src目录里,将 redis-server redis-cli redis.conf redis-benchmark redis-check-aof redis-check-dump 这几个文件复制到同一个目录下边(也不必要在同一个目录下边) 启动redis服务端: .
857 0
|
14天前
|
NoSQL Linux Redis
06- 你们使用Redis是单点还是集群 ? 哪种集群 ?
**Redis配置:** 使用哨兵集群,结构为1主2从,加上3个哨兵节点,总计分布在3台Linux服务器上,提供高可用性。
56 0
|
22天前
|
负载均衡 监控 NoSQL
Redis的集群方案有哪些?
Redis集群包括主从复制(基础,手动故障恢复)、哨兵模式(自动高可用)和Redis Cluster(官方分布式解决方案,自动分片和容错)。此外,还有如Codis、Redisson和Twemproxy等第三方工具用于代理和负载均衡。选择方案需考虑应用场景、数据规模和并发需求。
45 2
|
28天前
|
NoSQL Redis
Redis集群(六):集群常用命令及说明
Redis集群(六):集群常用命令及说明
44 0
|
2月前
|
运维 NoSQL 算法
Redis-Cluster 与 Redis 集群的技术大比拼
Redis-Cluster 与 Redis 集群的技术大比拼
46 0
|
22天前
|
NoSQL Java 测试技术
面试官:如何搭建Redis集群?
**Redis Cluster** 是从 Redis 3.0 开始引入的集群解决方案,它分散数据以减少对单个主节点的依赖,提升读写性能。16384 个槽位分配给节点,客户端通过槽位信息直接路由请求。集群是无代理、去中心化的,多数命令直接由节点处理,保持高性能。通过 `create-cluster` 工具快速搭建集群,但适用于测试环境。在生产环境,需手动配置文件,启动节点,然后使用 `redis-cli --cluster create` 分配槽位和从节点。集群动态添加删除节点、数据重新分片及故障转移涉及复杂操作,包括主从切换和槽位迁移。
31 0
面试官:如何搭建Redis集群?
|
26天前
|
存储 缓存 NoSQL
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群功能分析)(一)
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群功能分析)
87 0
|
1月前
|
NoSQL Redis Docker
使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)
使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)
63 0
|
1月前
|
存储 监控 NoSQL
Redis 架构深入:主从复制、哨兵到集群
大家好,我是小康,今天我们来聊下 Redis 的几种架构模式,包括主从复制、哨兵和集群模式。
Redis 架构深入:主从复制、哨兵到集群