redis命令操作之generic和string.java

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: redis是键值对的内存数据库,属于Nosql范畴 登录redis自带的客户端 #redis-cli 127.0.0.1:6379> 1.设置redis 键值对 > set foo bar  #设置键foo的值为"bar" OK #设置成功 2.获得redis 键值对 > get foo #根据键获得值 "bar" #返回的结果 3.删除键值对  1
redis是键值对的内存数据库,属于Nosql范畴
登录redis自带的客户端
#redis-cli
127.0.0.1:6379>
1.设置redis 键值对
> set foo bar  #设置键foo的值为"bar"
OK #设置成功


2.获得redis 键值对
> get foo #根据键获得值
"bar" #返回的结果


3.删除键值对 
127.0.0.1:6379> del foo foo2 foo3 #删除键值对,可删除多个
(integer) 3 #删除成功的键值对的个数


4.返回空
127.0.0.1:6379> get foo #如果键值对不存在,返回nil
(nil)


5.判断键值对是否存在,返回0:不存在,返回1:存在;只能查询一个键。


127.0.0.1:6379> EXISTS foo
(integer) 0
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> EXISTS foo
(integer) 1
127.0.0.1:6379> EXISTS foo foo2 foo3
(error) ERR wrong number of arguments for 'exists' command


6.设置键值对有效期
127.0.0.1:6379> EXPIRE foo 32 #设置foo键有效期为32秒
(integer) 1


7.根据键的表达式,查找符合表达式的键
127.0.0.1:6379> keys foo*
1) "foo3"
2) "foo2"
3) "foo"


8.自动将一个key从一个redis实例传输到另一个
MIGRATE host port key destination-db timeout
summary: Atomically transfer a key from a Redis instance to another one.
since: 2.6.0


9.将一个key移到另一个数据库
MOVE key db
summary: Move a key to another database
since: 1.0.0


10.检查内部的redis对象
OBJECT subcommand [arguments [arguments ...]]
summary: Inspect the internals of Redis objects
since: 2.2.3


11.从key中移除过期时间
PERSIST key
summary: Remove the expiration from a key
since: 2.2.0


127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> EXPIRE foo 32
(integer) 1
127.0.0.1:6379> PERSIST foo
(integer) 1


12.获取键值对的存活时间(微秒)
PTTL key
summary: Get the time to live for a key in milliseconds
since: 2.6.0


127.0.0.1:6379> EXPIRE foo 32
(integer) 1
127.0.0.1:6379> pttl foo
(integer) 27944
13.获取键值对存活时间(秒)
TTL key
summary: Get the time to live for a key
since: 1.0.0




13.设置微秒级别的键值对存活时间
PEXPIRE key milliseconds
summary: Set a key's time to live in milliseconds
since: 2.6.0


14.设置微秒级别的unix形式的时间,键值对存活时间
PEXPIREAT key milliseconds-timestamp
summary: Set the expiration for a key as a UNIX timestamp specified in milliseconds
since: 2.6.0


15.随机获取一个键
RANDOMKEY -
summary: Return a random key from the keyspace
since: 1.0.0


127.0.0.1:6379> RANDOMKEY
"foo2"
16.重命名键
RENAME key newkey
summary: Rename a key
since: 1.0.0


127.0.0.1:6379> rename foo12 foo13
OK


17.重命名键,新键不存在时
RENAMENX key newkey
summary: Rename a key, only if the new key does not exist
since: 1.0.0


127.0.0.1:6379> RENAMENX foo13 foo3 #foo3已经存在执行不成功
(integer) 0


18.备份键值对
DUMP key
summary: Return a serialized version of the value stored at the specified key.
since: 2.6.0
127.0.0.1:6379> dump foo
"\x00\x03bar\x06\x00pS!\xe0\x1b3\xc1\x84"


19.还原键值对
RESTORE key ttl serialized-value
summary: Create a key using the provided serialized value, previously obtained using DUMP.
since: 2.6.0


20.获取键的类型
TYPE key
summary: Determine the type stored at key
since: 1.0.0
127.0.0.1:6379> type foo3
string


21.按键排序
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]
summary: Sort the elements in a list, set or sorted set
since: 1.0.0


/****** string类型的命令操作 ********/
1.将值添加到键的值得后面
APPEND key value
summary: Append a value to a key
since: 2.0.0
127.0.0.1:6379> append foo3 barbar
(integer) 10
127.0.0.1:6379> get foo3
"bar3barbar"


2.
BITCOUNT key [start] [end]
summary: Count set bits in a string
since: 2.6.0
127.0.0.1:6379> bitcount foo3
(integer) 34
127.0.0.1:6379> bitcount foo13
(integer) 16


3."不懂"
BITOP operation destkey key [key ...]
summary: Perform bitwise operations between strings
since: 2.6.0


4.将值减小1(键对应的值必须为int)
DECR key
summary: Decrement the integer value of a key by one
since: 1.0.0


127.0.0.1:6379> set num1 13
OK
127.0.0.1:6379> get num1
"13"
127.0.0.1:6379> decr num1
(integer) 12
127.0.0.1:6379> get num1
"12"


5.将值减小指定大小(键对应的值必须为int)
DECRBY key decrement
summary: Decrement the integer value of a key by the given number
since: 1.0.0
127.0.0.1:6379> get num1
"12"
127.0.0.1:6379> DECRBY num1 6
(integer) 6
127.0.0.1:6379> get num1
"6"


6.为键重新复制,并返回之前的旧值
GETSET key value
summary: Set the string value of a key and return its old value
since: 1.0.0


7. 
GETBIT key offset
summary: Returns the bit value at offset in the string value stored at key
since: 2.2.0


8.
GETRANGE key start end
summary: Get a substring of the string stored at a key
since: 2.4.0


9.为key设置string值,并返回原先的值
GETSET key value
summary: Set the string value of a key and return its old value
since: 1.0.0


127.0.0.1:6379> get foo13
"bar12nametest"
127.0.0.1:6379> getset foo13 test
"bar12nametest"


10. 将value类型为int的值加1
INCR key
summary: Increment the integer value of a key by one
since: 1.0.0
127.0.0.1:6379> set num 10
OK
127.0.0.1:6379> get num
"10"
127.0.0.1:6379> INCR num
(integer) 11


11. 将value类型为int的值加指定的数
INCRBY key increment
summary: Increment the integer value of a key by the given amount
since: 1.0.0
127.0.0.1:6379> get num
"11"
127.0.0.1:6379> INCRBY num 10
(integer) 21
127.0.0.1:6379> get num
"21"


12.将value类型为float的值加上指定的数
INCRBYFLOAT key increment
summary: Increment the float value of a key by the given amount
since: 2.6.0


127.0.0.1:6379> set flo 11.2
OK
127.0.0.1:6379> get flo
"11.2"
127.0.0.1:6379> INCRBYFLOAT flo 12.0
"23.2"


13.获取多个key的value
MGET key [key ...]
summary: Get the values of all the given keys
since: 1.0.0
127.0.0.1:6379> MGET foo2 foo3 foo4
1) "bar2"
2) "bar3barbar"
3) (nil)




14.设置多个key的value
MSET key value [key value ...]
summary: Set multiple keys to multiple values
since: 1.0.1
127.0.0.1:6379> MSET foo2 bar22 foo3 bar33 foo4 bar44
OK
127.0.0.1:6379> MGET foo2 foo3 foo4
1) "bar22"
2) "bar33"
3) "bar44"


15.当所有的key都不存在时,设置value
MSETNX key value [key value ...]
summary: Set multiple keys to multiple values, only if none of the keys exist
since: 1.0.1
127.0.0.1:6379> MSETNX foo2 bar23 foo5 bar55 ##因为foo2键已经存在
(integer) 0


16.设置键的微秒生存时间和值
PSETEX key milliseconds value
summary: Set the value and expiration in milliseconds of a key
since: 2.6.0


17.设置键的秒生存时间和值
SETEX key seconds value
summary: Set the value and expiration of a key
since: 2.0.0




18.设置值
SET key value [EX seconds] [PX milliseconds] [NX|XX]
summary: Set the string value of a key
since: 1.0.0


19.
SETBIT key offset value
summary: Sets or clears the bit at offset in the string value stored at key
since: 2.2.0


20.在键不存在时,设置值
SETNX key value
summary: Set the value of a key, only if the key does not exist
since: 1.0.0


21.从offset位置写入新的值内容
SETRANGE key offset value
summary: Overwrite part of a string at key starting at the specified offset
since: 2.2.0
127.0.0.1:6379> set foo5 jing
OK
127.0.0.1:6379> get foo5
"jing"
127.0.0.1:6379> SETRANGE foo5 3 test
(integer) 7
127.0.0.1:6379> get foo5
"jintest"


22.获取值得长度
STRLEN key
summary: Get the length of the value stored in a key
since: 2.2.0
127.0.0.1:6379> STRLEN foo5
(integer) 4































相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
存储 缓存 监控
Redis设计与实现——Redis命令参考与高级特性
Redis 是一个高性能的键值存储系统,支持丰富的数据类型(字符串、列表、哈希、集合等)和多种高级功能。本文档涵盖 Redis 的核心命令分类,包括数据类型操作、事务与脚本、持久化、集群管理、系统监控等。特别介绍了事务的原子性特性、Lua 脚本的执行方式及优势、排序机制、发布订阅模型以及慢查询日志和监视器工具的使用方法。适用于开发者快速掌握 Redis 常用命令及其应用场景,优化系统性能与可靠性。
|
20天前
|
缓存 监控 NoSQL
Redis 实操要点:Java 最新技术栈的实战解析
本文介绍了基于Spring Boot 3、Redis 7和Lettuce客户端的Redis高级应用实践。内容包括:1)现代Java项目集成Redis的配置方法;2)使用Redisson实现分布式可重入锁与公平锁;3)缓存模式解决方案,包括布隆过滤器防穿透和随机过期时间防雪崩;4)Redis数据结构的高级应用,如HyperLogLog统计UV和GeoHash处理地理位置。文章提供了详细的代码示例,涵盖Redis在分布式系统中的核心应用场景,特别适合需要处理高并发、分布式锁等问题的开发场景。
119 38
|
3月前
|
NoSQL Java API
在Java环境下如何进行Redis数据库的操作
总的来说,使用Jedis在Java环境下进行Redis数据库的操作,是一种简单而高效的方法。只需要几行代码,就可以实现复杂的数据操作。同时,Jedis的API设计得非常直观,即使是初学者,也可以快速上手。
229 94
|
21天前
|
缓存 NoSQL Java
Java Redis 面试题集锦 常见高频面试题目及解析
本文总结了Redis在Java中的核心面试题,包括数据类型操作、单线程高性能原理、键过期策略及分布式锁实现等关键内容。通过Jedis代码示例展示了String、List等数据类型的操作方法,讲解了惰性删除和定期删除相结合的过期策略,并提供了Spring Boot配置Redis过期时间的方案。文章还探讨了缓存穿透、雪崩等问题解决方案,以及基于Redis的分布式锁实现,帮助开发者全面掌握Redis在Java应用中的实践要点。
68 6
|
2月前
|
存储 缓存 NoSQL
Redis中的常用命令-get&set&keys&exists&expire&ttl&type的详细解析
总的来说,这些Redis命令提供了处理存储在内存中的键值对的便捷方式。通过理解和运用它们,你可以更有效地在Redis中操作数据,使其更好地服务于你的应用。
221 17
|
2月前
|
Arthas 存储 监控
Arthas heapdump(dump java heap, 类似 jmap 命令的 heap dump 功能)
Arthas heapdump(dump java heap, 类似 jmap 命令的 heap dump 功能)
85 8
|
2月前
|
消息中间件 NoSQL Linux
Redis的基本介绍和安装方式(包括Linux和Windows版本),以及常用命令的演示
Redis(Remote Dictionary Server)是一个高性能的开源键值存储数据库。它支持字符串、列表、散列、集合等多种数据类型,具有持久化、发布/订阅等高级功能。由于其出色的性能和广泛的使用场景,Redis在应用程序中常作为高速缓存、消息队列等用途。
634 16
|
2月前
|
JSON NoSQL Redis
在Rocky9系统上安装并使用redis-dump和redis-load命令的指南
以上步骤是在Rocky9上使用redis-dump和redis-load命令顺利出行的秘籍。如果在实行的过程中,发现了新的冒险和挑战,那么就像一个勇敢的航海家,本着探索未知的决心,解决问题并前进。
67 14
|
2月前
|
消息中间件 NoSQL Unix
Redis的基本特性以及其基础命令用法
这只是冰山一角,Redis的强大功能和简洁的操作方法值得我们深入了解和掌握,是复杂数据问题解决的有力工具。所以,来一场有趣的Redis冒险吧!
118 6
|
3月前
|
监控 数据可视化 Java
调试技巧 - 用Linux命令排查Java问题
总的来说,使用Linux命令来排查Java问题,需要一定的实践经验和理论知识。然而,只要我们愿意花时间深入了解这些工具,我们就能够熟练地使用它们来分析和解决问题。此外,这些工具只是帮助我们定位问题,真正解决问题需要我们对Java和JVM有深入的理解,并能够读懂和分析代码。
120 13

热门文章

最新文章