Redis

1.4、进入redis命令窗口:

执行 redis-cli 即可进入redis命令窗口,然后就可以执行redis命令了。

1.5、redis命令大全

Redis 命令参考 --- Redis 命令参考

1.6、redis介绍相关知识

默认端口6379 默认16个数据库,类似数组的下标从0开始,初始默认使用0号库 使用select 来切换数据库,如:select 1,切换到第2个库 统一密码管理,所有的库密码相同 dbsize:查看当前数据库的key的数量 flushdb:情况当前库 flushall:清空全部库 redis是单线程+多路IO复用技术。 多路复用是指使用一个线程来检测多个文件描述符(socket)的就绪状态,比如调用select和poll函数, 传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞到超时,得到就绪状态后进行真 正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池) 串行 vs 多线程+锁(memcached) vs 单线程+多路复用(redis) (与memcache三不同:支持多数据类型,支持持久化,单线程+多路复用)

redis6.0中提供了多线程,命令解析和io数据读写这部分采用了多线程,而命令的执行还是采用的是单线 程,多个客户端发送来的命令会在同一个线程去执行,相当于排队执行,效率极高。

2、redis 5大数据类型

这里说的数据类型是value的数据类型,key的类型都是字符串。 5种数据类型:

redis字符串(String)

redis列表(List)

redis集合(Set)

redis哈希表(Hash)

redis有序集合(Zset)

哪里去获取redis常用数据类型操作命令:http://redis.cn/commands.html

2.1、redis键(key)

keys *:查看当前库所有的key exists key:判断某个key是否存在

type key:查看你的key是什么类型

del key:删除指定的key数据

unlink key:根据value删除非阻塞删除,仅仅将keys从keyspace元数据中删除,真正的删除会在 后续异步中操作。

expire key 10:为指定的key设置有效期10秒

ttl key:查看指定的key还有多少秒过期,-1:表示永不过期,-2:表示已过期

select dbindex:切换数据库【0-15】,默认为0

dbsize:查看当前数据库key的数量

flushdb:清空当前库

flushall:通杀全部库

2.2、redis字符串(String)

2.2.1、简介 String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。 String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象。 String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M

2.2.2、常用命令

set:添加键值对

127.0.0.1:6379> set key value [EX seconds|PX milliseconds|EXAT timestamp|PXAT milliseconds-timestamp|KEEPTTL] [NX|XX] [GET]

NX:当数据库中key不存在时,可以将key-value添加到数据库

XX:当数据库中key存在时,可以将key-value添加数据库,与NX参数互斥

EX:key的超时秒数

PX:key的超时毫秒数,与EX互斥

value中若包含空格、特殊字符,需用双引号包裹

**get:获取值:**get <key>

示例

127.0.0.1:6379> set name ready

OK 127.0.0.1:6379> get name

"ready"

apend:追价值:

append <key><value>

将给定的value追加到原值的末尾。

示例

127.0.0.1:6379> set k1 hello

OK 127.0.0.1:6379> append k1 " world" (integer) 11

127.0.0.1:6379> get k1

"hello world"

strlen:获取值的长度:

strlen<key>

示例

127.0.0.1:6379> set name ready

OK 127.0.0.1:6379> strlen name

(integer) 5

setnx:key不存在时,设置key的值

setnx <key><value>

示例

127.0.0.1:6379> flushdb #清空db,方便测试

OK 127.0.0.1:6379> setnx site "itsoku.com" #site不存在,返回1,表示设置成功 (integer) 1 127.0.0.1:6379> setnx site "itsoku.com" #再次通过setnx设置site,由于已经存在了,所以设 置失败,返回0 (integer) 0

incr:原子递增1

incr<key>

将key中存储的值增1,只能对数字值操作,如果key不存在,则会新建一个,值为1

示例

127.0.0.1:6379> flushdb #清空db,方便测试

OK 127.0.0.1:6379> set age 30 #age值为30

OK 127.0.0.1:6379> incr age #age增加1,返回31 (integer) 31

127.0.0.1:6379> get age #获取age的值 "31"

127.0.0.1:6379> incr salary #salary不存在,自动创建一个,值为1 (integer) 1

127.0.0.1:6379> get salary #获取salary的值 "1"

decr:原子递减1

decr <key>

将key中存储的值减1,只能对数字值操作,如果为空,新增值为-1

示例

127.0.0.1:6379> flushdb #清空db,方便测试

OK 127.0.0.1:6379> set age 30 #age值为30 OK

127.0.0.1:6379> decr age #age递减1,返回29 (integer) 29

127.0.0.1:6379> get age #获取age的值 "29"

127.0.0.1:6379> decr salary #salary不存在,自动创建一个,值为-1 (integer) -1

127.0.0.1:6379> get salary #获取salary "-1"

incrby/decrby:递增或者递减指定的数字

incrby/decrby <key> <步长>

将key中存储的数字值递增指定的步长,若key不存在,则相当于在原值为0的值上递增指定的步 长。

示例

127.0.0.1:6379> set salary 10000 #设置salary为10000 OK

127.0.0.1:6379> incrby salary 5000 #salary添加5000,返回15000 (integer) 15000 127.0.0.1:6379> get salary #获取salary "15000"

127.0.0.1:6379> decrby salary 800 #salary减去800,返回14200 (integer) 14200

127.0.0.1:6379> get salary #获取salary "14200"

相关推荐
啾啾Fun几秒前
[Java基础]StringBuilder解析
java·stringbuilder
2401_890665864 分钟前
免费送源码:Java+SpringBoot+MySQL SpringBoot网上宠物领养管理系统 计算机毕业设计原创定制
java·vue.js·spring boot·python·mysql·pycharm·html5
振鹏Dong11 分钟前
深入浅出Redis 缓存使用问题 | 长文分享
数据库·redis
湫qiu26 分钟前
为什么我建议你主动释放直接内存 - Java
java·linux·后端
fancyZZZ28 分钟前
Redisson锁源码详解
redis
9号达人30 分钟前
Java 11 新特性详解与实践
java·后端·面试
Java&Develop30 分钟前
redis 免安装版本 启动方法 windows 安装包
数据库·windows·redis
异常君31 分钟前
Java 中滥用 Optional 导致的意外问题与正确使用建议
java
异常君31 分钟前
Java 项目中对异常链(Exception Chaining)的误用与正确操作
java
疯狂学习GIS32 分钟前
本地安装JAR包出现The goal you specified requires a project to execute的处理
java·后端·maven