千家信息网

Redis初探

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,大概在2010年的时候,有一次和一个同事聊天,那个时候知道了Redis,对于技术的追随至今,还没有下载一个Redis版本玩玩,只有1万多行代码,以性能惊人著称。新浪微博架构师杨卫华(我一翻微信,原来就
千家信息网最后更新 2025年11月11日Redis初探

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

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

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

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

我所在的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

得到刚初始化后的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中九牛一毛的操作,还是很多的内容自己要细化学习。



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




就是 数据 命令 元素 信息 官方 类型 技术 文件 时候 只有 数据结构 文档 版本 目录 结构 还是 存储 开发 提示 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 学校网络技术员岗位职责 计算机网络技术答案在哪找 中央高度重视网络安全工作 我想利用下班时间学软件开发 我的世界国际版启动器服务器 徐汇区第三方软件开发代理商 玉器鉴别软件开发 设计数据库数据表中文字长度 ios楚留香去哪个服务器 计算机网络技术专升本上几年 澳门统计局数据库 嵌入式软件开发技术主要学什么 服务器如果有密码 计算机机网络技术专业 青年网络技术中心 无线网络安全基础期末 怀旧服服务器关闭会怎么样 did网络技术 关于网络安全法错误的有 用什么软件开发威纶触摸屏 龙之谷服务器断开连接 浙江网络安全工程是什么 nat管理虚拟服务器 欧标软件开发组 网络安全手绘画素材 服务器防火墙监控搭建 怎么让电脑自己给自己当服务器 计算机网络技术专升本上几年 TANX英文翻译软件开发 计算机局域网的硬件组成是服务器
0