Redis 实践笔记1---基础知识
前言
由于Redis的广泛使用,加上在项目中涉及到Redis,因此会根据自己的使用和学习,写一个Redis系列的博客,作为自己的笔记,同时也分享给大家。
What is Redis ?
看一下Redis的官网http://redis.io/对REDIS的描述:
Redis is an open source, BSD licensed, advanced key-value cache and store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets,sorted sets, bitmaps and hyperloglogs.
关键词:
Redis,开源KEY/VALUE缓存系统,数据结构服务器,数据类型。
install it and start it!
安装redis,没有什么特殊之处,启动也很简单。
如果解压之后,没有configure进行安装选项的指定,直接make && makeinstall进行安装的话,默认REDIS会安装至/usr/local/bin下。
命令 | 说明 |
./redis-server ./redis.conf | 我们可以把安装路径下的redis.conf拷贝至启动命令路径下。用于启动REDIS。 |
./redis-cli ./redis-cli shutdown |
REDIS客户端,可以连接和关闭redis。 |
./redis-benchmark | REDIS性能测试。 |
启动后,观察端口占用情况:
1
2
3
4
|
[root@master bin] # ./redis-server ./redis.conf
[root@master bin] # netstat -tnlp | grep redis
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 4508 /redis-server *
tcp 0 0 :::6379 :::* LISTEN 4508 /redis-server *
|
REDIS的默认启动端口就是 6379。
1
2
3
4
5
6
7
|
[root@master bin] # ./redis-cli
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> set name zhangfengzhe
OK
127.0.0.1:6379> get name
"zhangfengzhe"
|
Redis.conf
可以浏览下Redis的配置文件,下面是一些入门配置选项。
配置 | 说明 |
daemonize yes | 启动redis是否以后台的方式启动。默认是no,那么一个XSHELL客户端启动REDIS后会阻塞,因此可以将配置改为yes. |
port 6379 | 启动端口。 |
bind 192.168.1.100 | REDIS的安全特性,可以允许指定IP客户端才能访问REDIS SERVER! |
logfile "/usr/local/bin/resin.runlog" | 指定REDIS的运行日志 |
databases 16 | REDIS的数据是存储在内存中的,但是也是可以持久化到数据库中,并且REDIS将数据库的个数默认设置为16个,默认情况下是数据库0在使用,我们可以使用select进行切换。 |
save 900 1 | REDIS将内存中的数据保存至数据库的策略。左边示例就是说,900S内有一个KEY发生变化,那么STORE至DB。支持多SAVE的策略。 |
dbfilename dump.rdb dir ./ |
数据库文件名称及存储路径 |
appendonly yes appendfilename "appendonly.aof" appendfsync everysec |
REDIS的AOF机制:是否记录操作REDIS的每一个操作至AOF文件中。 |
数据类型
相比Memcached只支持String类型的KEY/VALUE而言,Redis的数据类型很丰富,比如:String/List/Set/Sorted Set/Hash等。Redis所支持的类型很多,每一种类型的命令也不少,那么我们如何记忆,学习,使用呢?
我的想法:理解REDIS每一种数据类型的特点 + 官方命令手册
在http://redisdoc.com/ 有REDIS的每一个数据类型的命令列表,以及命令的使用方法说明。
数据类型 | 说明以及一些命令 |
String |
字符串类型,也可以存储数字,以及任何可以序列化的数据,REDIS最大上限是1GB,远远大于MEMCACHED的限制。 set/setnx/get/getset/mget/mset/msetnx/ 【结尾是nx标示如果存在这个KEY才操作,m开头的标示批量操作】 incr/incrby/decr/decrby 【数字的原子性的增减】 append/substr/strlen 【追加、截取、长度】 |
List |
本质上LIST的每一元素是STRING类型,并且LIST就是一个双向链表! 可以堆栈,即先进后出;可以队列,即先进先出。 lpush/rpush/lpop/rpop/blpop/brpop 【b开头的标示是此命令的阻塞版本,虽然阻塞但是避免了轮询。】 linsert 可以方便LIST进行非头尾的插入操作 lrange/ltrim/lset/lrem 【注意0代表第一个元素,-1代表最后一个元素】 LIST没有命令可以直接查询是否包含这个STRING! LIST中元素是有序的,提供了lindex key index来返回下标为index的元素 |
Set |
Set是String类型的无序集合,和JAVA的Set<String>特点一致。 sadd/smembers/sinter/sinterstore/sunion/sunionstore/sdiff/sdiffstore 【以store结尾的标示此命令的结果存储至另一个SET集合中】 Set的最大特点是支持集合之间的交,并,差运算。 【这些操作很利于实现SNS需要的好友推荐,BLOG的TAG功能等】 Set还提供SISMEMBER命令来查询SET集合是否包含这个KEY!这是LIST所不能的! 由于Set的无序性,导致取出一个元素只能利用spop/srandmember随机取出!而sorted set解决了这一问题。 |
Sorted Set |
Sorted Set的中的元素是String类型的,但是每一个String元素关联了一个SCORE(权重,优先级),元素根据SCORE来进行排序。 zset需要注意的是,有一个排名,即rank;一个是分数,即score. |
Hash |
一个String类型的FILED/VALUE的映射表。 Hash特别适合存储对象,占用更少的内存,而且可以很方便的存取整个对象。 hset/hmset/hget/hmget/hkeys/hvals/hgetall/hlen/hdel/hexists... |
KEY
exists key |
0 or 1 |
del key | |
type key |
none/string/list/set/... |
keys pattern | 符合pattern的所有KEY |
expire key seconds | 设置KEY的过期时间 |
本文转自zfz_linux_boy 51CTO博客,原文链接:http://blog.51cto.com/zhangfengzhe/1656888,如需转载请自行联系原作者
Redis 实践笔记1---基础知识相关推荐
- SAS学习笔记1——基础知识(库、PDV、变量选择、观测值排序、创建新变量
SAS学习笔记1--基础知识 1.逻辑库.临时库.永久库 2.数据步 2.1数据步语法 2.2 数据步的编译和执行过程 2.3变量的选择 2.3.1 keep和drop语句 2.4变量的重命名rena ...
- 笔记-项目管理基础知识-复习要点
1. 项目的特点 临时性(一次性).独特性.渐进明确性 2. 项目目标包括成果性目标和约束性目标 ●笔记-项目管理基础知识-项目目标 3. 项目目标的特点 多目标性.有限性.层次性 4. ▲项目管理5 ...
- 数字图像处理与Python实现笔记之基础知识
数字图像处理与Python实现笔记之基础知识 摘要 绪论 1 数字图像处理基础知识 1.1 数字图像简介 1.1.1 数字图像处理的目的 1.1.2 数字图像处理的应用 1.1.3 数字图像处理的特点 ...
- php基础教学笔记,php学习笔记:基础知识
php学习笔记:基础知识 2.每行结尾不允许有多余的空格 3.确保文件的命名和调用大小写一致,是由于类Unix系统上面,对大小写是敏感的 4.方法名只允许由字母组成,下划线是不允许的,首字母要小写,其 ...
- Redis命令总结及其基础知识讲述
Redis命令总结及其基础知识讲述 1.redis的不同之处 Redis拥有其他数据库不具备的数据结构,又拥有内存存储(这使得redis的速度非常快),远程操作(使得redis可以与多个客户端和服务器 ...
- 【学习笔记--FMCW基础知识】
学习笔记--FMCW基础知识 前言 mmWave测距原理 mmWave区分多个物体 mmWave的距离分辨率(Range Solution) mmWave的最大测量距离 前言 由于工作原因需要了解TI ...
- (一)Redis——五大数据类型及基础知识
一位爱好技术的橘右京的哥哥橘左京 Redis--五大数据类型及基础知识(一) Redis 1.Redis命令 1.1 常用String命令 1.2 常用List命令 1.3 常用Hash命令 1.4 ...
- python 图像分析自然纹理方向与粗细代码_数字图像处理与Python实现笔记之基础知识...
数字图像处理与Python实现笔记之基础知识 摘要 绪论 1 数字图像处理基础知识 1.1 数字图像简介 1.1.1 数字图像处理的目的 1.1.2 数字图像处理的应用 1.1.3 数字图像处理的特点 ...
- 咸鱼Maya笔记—动画基础知识
咸鱼Maya笔记-动画基础知识 动画基本原理 动画基本分类 动画基本界面与命令 预设动画参数 在Maya 2019中,一个对象被创建完成后,它的所有节点属性,包括模型的位移.大小.旋转,以及场景中材质 ...
最新文章
- CB Insights发布AI创业公司100榜单 ,7家中国公司上榜,两家二次登榜
- ICCV 2021 | 重铸Regression荣光!具有残差对数似然估计的人体姿态回归
- phoenix客户端操作hbase已经存在的表
- Azure已成为微软业绩的顶梁柱
- 关于对象不能直接访问私有成员的误区(转)
- Apache JMeter 测试 HTTP接口
- 常用损失函数(Loss Function)
- Java面向对象基础学习笔记(构造、重载、继承、多态、抽象类、接口、模块)
- 蓝桥杯 ADV-165算法提高 超级玛丽(动态规划、递推)
- Shiro-从数据表中初始化资源和权限
- mipi差分信号原理
- MySql数据类型分析(字符类型) Part4
- PyTorch Bert文本分类
- 计算机课签到本,大学课堂点名技术日新月异:电脑摇号扫码上课
- 【场景化解决方案】金蝶凭证信息与OA审批集成
- 计算机任务栏隐藏恢复,电脑看不到任务栏怎么办 电脑任务栏不见了如何恢复...
- Java获取外网ip地址
- 前后端分离的项目部署到tomcat_阿里聚石塔部署前后端分离项目
- 2023年社交平台研究报告
- 基于人脸识别的考勤记录项目