keyredis模糊查询个数_redis⼊门,看这⼀篇就够了
Redis简介:
Redis 是完全开源免费的,遵守 BSD 协议,是⼀个⾼性能的 key - value 数据库。
Redis的全称是 Remote Dictionary Server,它是⼀款开源的⾼性能的NoSQL数据库,它可以⽤作数据库、缓存和消息队列。
Redis 与 其他 key - value 缓存产品有以下三个特点:
Redis ⽀持数据持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进⾏使⽤。
Redis 不仅仅⽀持简单的 key - value 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储
Redis ⽀持数据的备份,即 master - slave 模式的数据备份
Redis优势:
性能极⾼ – Redis 读的速度是 110000 次 /s, 写的速度是 81000 次 /s 。
丰富的数据类型 - Redis ⽀持⼆进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原⼦性 - Redis 的所有操作都是原⼦性的,意思就是要么成功执⾏要么失败完全不执⾏。单个操作是原⼦性的。多个操作也⽀持事务,即原⼦性,通过 MULTI 和 EXEC 指令包起来。
其他特性 - Redis 还⽀持 publish/subscribe 通知,key 过期等特性。
NoSQL
NoSQL 最常见的解释是 non-relational,⾮关系型数据库,还有⼀种说法是 Not Only SQL,不仅仅是 SQL,NoSQL 仅仅是⼀个概念,泛指⾮关系型的数据库,区别于关系数据库,它们不保证关系数据的 ACID 特性。ACID 即
A (Atomicity) 原⼦性
C (Consistency) ⼀致性
I (Isolation) 独⽴性
D (Durability) 持久性
Redis 通过提供多种键值对的数据类型来适应不同场景下的存储需求。
Redis 数据类型及主要应⽤场景:
关于上表中的部分释义:
1. 压缩列表是列表键和哈希键的底层实现之⼀。
当⼀个列表键只包含少量列表项,并且每个列表项要么就是⼩整数,要么就是长度⽐较短的字符串,Redis就会使⽤压缩列表来做列表键的底层实现
2. 整数集合是集合键的底层实现之⼀,当⼀个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使⽤整数集合作为集
合键的底层实现
字符串 - strings
string 字符串 是 Redis 中最简单的数据类型,它是与 Memcached ⼀样的类型,⼀个 key 对应⼀个 value,这种 key/value 对应的⽅式称为键值对。字符串对很多例⼦都有⽤,例如缓存 HTML ⽚段和⽹页。
集合 - set
set 是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。操作中 key 理解为集合的名字。
散列 - hash
hash 是⼀个键值 (key=>value) 对集合;是⼀个 string 类型的 field 和 value 的映射表,hash 特别适合⽤于存储对象。
列表 - list
Redis 列表是简单的字符串列表,按照插⼊顺序排序。你可以添加⼀个元素到列表的头部(左边)或者尾部(右边)。list类型经常会被⽤于消息队列的服务,以完成多程序之间的消息交换。
有序集合 - zset
Redis zset 和 set ⼀样也是 string 类型元素的集合,且不允许重复的成员。当你需要⼀个有序的并且不重复的集合列表时,那么可以选择sorted set 数据结构。
应⽤场景:
Redis 的应⽤场景包括:缓存系统(“热点”数据:⾼频读、低频写)、计数器、消息队列系统、排⾏榜、社交⽹络和实时系统。
Redis常⽤命令
常⽤管理命令
1、启动Redis
> redis-server [--port 6379]
如果命令参数过多,建议通过配置⽂件来启动Redis。
> redis-server [xx/f]
6379是Redis默认端⼝号。
2、连接Redis
> ./redis-cli [-h 127.0.0.1 -p 6379]
3、停⽌Redis
> redis-cli shutdown
> kill redis-pid
以上两条停⽌Redis命令效果⼀样。
4、发送命令
给Redis发送命令有两种⽅式:
1、redis-cli带参数运⾏,如:
> redis-cli shutdown
not connected>
这样默认是发送到本地的6379端⼝。
2、redis-cli不带参数运⾏,如:
> ./redis-cli
127.0.0.1:6379> shutdown
not connected>
5、测试连通性
127.0.0.1:6379> ping
PONG
key操作命令
获取所有键
语法:keys pattern
127.0.0.1:6379> keys *
1) "javastack"
*表⽰通配符,表⽰任意字符,会遍历所有键显⽰所有的键列表,时间复杂度O(n),在⽣产环境不建议使⽤。获取键总数
语法:dbsize
127.0.0.1:6379> dbsize
(integer) 6
获取键总数时不会遍历所有的键,直接获取内部变量,时间复杂度O(1)。
查询键是否存在
语法:exists key [key …]
查询查询多个,返回存在的个数。
删除键
语法:del key [key …]
127.0.0.1:6379> del java javastack (integer) 1
可以删除多个,返回删除成功的个数。
查询键类型
语法: type key
127.0.0.1:6379> type javastack
string
移动键
语法:move key db
redis支持的数据结构
如把javastack移到2号数据库。
127.0.0.1:6379> move javastack 2 (integer) 1
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> keys *
1) "javastack"
查询key的⽣命周期(秒)
秒语法:ttl key
毫秒语法:pttl key
127.0.0.1:6379[2]> ttl javastack (integer) -1
-1:永远不过期。
设置过期时间
秒语法:expire key seconds
毫秒语法:pexpire key milliseconds
127.0.0.1:6379[2]> ttl javastack
(integer) 55
设置永不过期
语法:persist key
127.0.0.1:6379[2]> persist javastack
(integer) 1
更改键名称
语法:rename key newkey
127.0.0.1:6379[2]> rename javastack javastack123
OK
字符串操作命令
字符串是Redis中最基本的数据类型,单个数据能存储的最⼤空间是512M。
存放键值
语法:set key value [EX seconds] [PX milliseconds] [NX|XX]
nx:如果key不存在则建⽴,xx:如果key存在则修改其值,也可以直接使⽤setnx/setex命令。
127.0.0.1:6379> set javastack 666
OK
获取键值
语法:get key
127.0.0.1:6379[2]> get javastack
"666"
值递增/递减
如果字符串中的值是数字类型的,可以使⽤incr命令每次递增,不是数字类型则报错。
语法:incr key
127.0.0.1:6379[2]> incr javastack
(integer) 667
⼀次想递增N⽤incrby命令,如果是浮点型数据可以⽤incrbyfloat命令递增。
同样,递减使⽤decr、decrby命令。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。