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"

相关推荐
GoodStudyAndDayDayUp9 分钟前
IDEA能够从mapper跳转到xml的插件
xml·java·intellij-idea
Code apprenticeship34 分钟前
怎么利用Redis实现延时队列?
数据库·redis·缓存
百度智能云技术站37 分钟前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle
装不满的克莱因瓶40 分钟前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb
n北斗1 小时前
常用类晨考day15
java
骇客野人1 小时前
【JAVA】JAVA接口公共返回体ResponseData封装
java·开发语言
yuanbenshidiaos2 小时前
c++---------数据类型
java·jvm·c++
向宇it2 小时前
【从零开始入门unity游戏开发之——C#篇25】C#面向对象动态多态——virtual、override 和 base 关键字、抽象类和抽象方法
java·开发语言·unity·c#·游戏引擎
Lojarro2 小时前
【Spring】Spring框架之-AOP
java·mysql·spring
莫名其妙小饼干2 小时前
网上球鞋竞拍系统|Java|SSM|VUE| 前后端分离
java·开发语言·maven·mssql