`
lastthelast
  • 浏览: 22405 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Redis非常有用的指定

 
阅读更多

 

连接控制
QUIT 关闭连接
AUTH (仅限启用时)简单的密码验证

适合全体类型的命令
EXISTS key 判断一个键是否存在;存在返回 1;否则返回0;
DEL key 删除某个key,或是一系列key;DEL key1 key2 key3 key4
TYPE key 返回某个key元素的数据类型 ( none:不存在,string:字符,list,set,zset,hash)
KEYS pattern 返回匹配的key列表 (KEYS foo*:查找foo开头的keys)
RANDOMKEY 随机获得一个已经存在的key,如果当前数据库为空,则返回空字符串
RENAME oldname newname更改key的名字,新键如果存在将被覆盖
RENAMENX oldname newname 更改key的名字,如果名字存在则更改失败
DBSIZE返回当前数据库的key的总数
EXPIRE设置某个key的过期时间(秒),(EXPIRE bruce 1000:设置bruce这个key1000秒后系统自动删除)注意:如果在还没有过期的时候,对值进行了改变,那么那个值会被清除。
TTL查找某个key还有多长时间过期,返回时间秒
SELECT index 选择数据库
MOVE key dbindex 将指定键从当前数据库移到目标数据库 dbindex。成功返回 1;否则返回0(源数据库不存在key或目标数据库已存在同名key);
FLUSHDB 清空当前数据库中的所有键
FLUSHALL 清空所有数据库中的所有键

处理字符串的命令
SET key value 给一个键设置字符串值。SET keyname datalength data (SET bruce 10 paitoubing:保存key为burce,字符串长度为10的一个字符串paitoubing到数据库),data最大不可超过1G。
GET key获取某个key 的value值。如key不存在,则返回字符串“nil”;如key的值不为字符串类型,则返回一个错误。
GETSET key value可以理解成获得的key的值然后SET这个值,更加方便的操作 (SET bruce 10 paitoubing,这个时候需要修改bruce变成1234567890并获取这个以前的数据paitoubing,GETSET bruce 10 1234567890)
MGET key1 key2 … keyN 一次性返回多个键的值
SETNX key value SETNX与SET的区别是SET可以创建与更新key的value,而SETNX是如果key不存在,则创建key与value数据
MSET key1 value1 key2 value2 … keyN valueN 在一次原子操作下一次性设置多个键和值
MSETNX key1 value1 key2 value2 … keyN valueN 在一次原子操作下一次性设置多个键和值(目标键不存在情况下,如果有一个以上的key已存在,则失败)
INCR key 自增键值
INCRBY key integer 令键值自增指定数值
DECR key 自减键值
DECRBY key integer 令键值自减指定数值

处理 lists 的命令
RPUSH key value 从 List 尾部添加一个元素(如序列不存在,则先创建,如已存在同名Key而非序列,则返回错误)
LPUSH key value 从 List 头部添加一个元素
LLEN key 返回一个 List 的长度
LRANGE key start end从自定的范围内返回序列的元素 (LRANGE testlist 0 2;返回序列testlist前0 1 2元素)
LTRIM key start end修剪某个范围之外的数据 (LTRIM testlist 0 2;保留0 1 2元素,其余的删除)
LINDEX key index返回某个位置的序列值(LINDEX testlist 0;返回序列testlist位置为0的元素)
LSET key index value更新某个位置元素的值
LREM key count value 从 List 的头部(count正数)或尾部(count负数)删除一定数量(count)匹配value的元素,返回删除的元素数量。
LPOP key 弹出 List 的第一个元素
RPOP key 弹出 List 的最后一个元素
RPOPLPUSH srckey dstkey 弹出 _srckey_ 中最后一个元素并将其压入 _dstkey_头部,key不存在或序列为空则返回“nil”

处理集合(sets)的命令(有索引无序序列)
SADD key member增加元素到SETS序列,如果元素(membe)不存在则添加成功 1,否则失败 0;(SADD testlist 3 \n one)
SREM key member 删除SETS序列的某个元素,如果元素不存在则失败0,否则成功 1(SREM testlist 3 \N one)
SPOP key 从集合中随机弹出一个成员
SMOVE srckey dstkey member 把一个SETS序列的某个元素 移动到 另外一个SETS序列 (SMOVE testlist test 3\n two;从序列testlist移动元素two到 test中,testlist中将不存在two元素)
SCARD key 统计某个SETS的序列的元素数量
SISMEMBER key member 获知指定成员是否存在于集合中
SINTER key1 key2 … keyN 返回 key1, key2, …, keyN 中的交集
SINTERSTORE dstkey key1 key2 … keyN 将 key1, key2, …, keyN 中的交集存入 dstkey
SUNION key1 key2 … keyN 返回 key1, key2, …, keyN 的并集
SUNIONSTORE dstkey key1 key2 … keyN 将 key1, key2, …, keyN 的并集存入 dstkey
SDIFF key1 key2 … keyN 依据 key2, …, keyN 求 key1 的差集。官方例子:
key1 = x,a,b,c
key2 = c
key3 = a,d
SDIFF key1,key2,key3 => x,b
SDIFFSTORE dstkey key1 key2 … keyN 依据 key2, …, keyN 求 key1 的差集并存入 dstkey
SMEMBERS key 返回某个序列的所有元素
SRANDMEMBER key 随机返回某个序列的元素

处理有序集合(sorted sets)的命令 (zsets)
ZADD key score member 添加指定成员到有序集合中,如果目标存在则更新score(分值,排序用)
ZREM key member 从有序集合删除指定成员
ZINCRBY key increment member 如果成员存在则将其增加_increment_,否则将设置一个score为_increment_的成员
ZRANGE key start end 返回升序排序后的指定范围的成员
ZREVRANGE key start end 返回降序排序后的指定范围的成员
ZRANGEBYSCORE key min max 返回所有符合score >= min和score <= max的成员 ZCARD key 返回有序集合的元素数量 ZSCORE key element 返回指定成员的SCORE值 ZREMRANGEBYSCORE key min max 删除符合 score >= min 和 score <= max 条件的所有成员

排序(List, Set, Sorted Set)
SORT key BY pattern LIMIT start end GET pattern ASC|DESC ALPHA 按照指定模式排序集合或List

SORT mylist
默认升序 ASC

SORT mylist DESC

SORT mylist LIMIT 0 10
从序号0开始,取10条

SORT mylist LIMIT 0 10 ALPHA DESC
按首字符排序

SORT mylist BY weight_*
SORT mylist BY weight_* GET object_*
SORT mylist BY weight_* GET object_* GET #

SORT mylist BY weight_* STORE resultkey
将返回的结果存放于resultkey序列(List)

持久控制
SAVE 同步保存数据到磁盘
BGSAVE 异步保存数据到磁盘
LASTSAVE 返回上次成功保存到磁盘的Unix时间戳
SHUTDOWN 同步保存到服务器并关闭 Redis 服务器(SAVE+QUIT)
BGREWRITEAOF 当日志文件过长时重写日志文件

远程控制命令
INFO 提供服务器的信息和统计信息
MONITOR 实时输出所有收到的请求
SLAVEOF 修改复制选项

redis目前提供四种数据类型:string,list,set及zset(sorted set)。
* string是最简单的类型,你可以理解成与Memcached一模一个的类型,一个key对应一个value,其上支持的操作与Memcached的操 作类似。但它的功能更丰富。
* list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等。操作中key理解为链表的名字。
* set是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。操作中key理解为集合的名字。
* zset是set的一个升级版本,他在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的 值调整顺序。可以理解了有两列的mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。

协议
redis目前只有基于TCP的文本协议,与memcache类似,有一些改进。
客户端通常发送
命令 参数… 值字节数\r\n
值\r\n

服务端的返回,根据第一个字节,可以判断:
- 错误信息
+ 普通文本信息
$ 变长字节数,$6表示CRLF之后有6个字节的字符
: 返回一个整数
* 返回组数,即*6表示CRLF之后将返回6组变长字符

注意事项:
Key不可包含空格或者回车符
Key不要过长或过短,应使其有意义,如”comment:1234:reply.to”

分享到:
评论

相关推荐

    Windows版 Redis 5.0.14

    - `redis-benchmark.exe`是性能测试工具,可以评估Redis服务器的读写速度和并发性能,对于系统调优非常有用。 4. **Redis Cluster**: - `redis-cluster`标签表示支持Redis的集群功能。Redis Cluster是其分布式...

    redis连接工具 windows下

    此外,"redis-client"工具可能还支持监视(MONITOR)、订阅/发布(SUBSCRIBE/PUBLISH)等功能,这对于调试和实时数据交换非常有用。 总的来说,"redis-client"是一个实用的Windows环境下Redis管理工具,它的便携性...

    Java操作Redis的多种数据类型

    哈希类型在存储复杂对象时非常有用,如用户信息或文章详情。 最后是**集合类型**(Set)。Set是无序且不重复的元素集合。我们可以使用`sadd`添加元素,`srem`移除元素,`smembers`获取所有成员,以及`sinter`、`...

    redis7的离线安装包

    对于那些没有网络或者网络不稳定的企业环境,离线安装包非常有用。这里提供的“redis-7.0.7”压缩包包含了编译好的二进制文件,用户可以直接解压到服务器上使用。 5. **编译过程**:从源码编译Redis涉及到下载源...

    Redis Desktop Manager 2019.5.0

    通过这个功能,用户可以执行诸如设置键值、发布订阅、事务处理以及lua脚本执行等复杂操作,这对于调试和测试Redis应用程序极其有用。 此外,Redis Desktop Manager的一个显著特点是它的键值浏览功能。用户可以轻松...

    redis订阅,redis发布

    这种模式对于实现实时通知、聊天系统或者构建事件驱动的应用非常有用。 **Redis 发布/订阅机制** 1. **发布者(Publisher)**: 发布者是产生消息的源头,它将消息发送到特定的频道(channel)。在 Redis 客户端中...

    RedisRepository 分享和纠错

    这些功能在处理Redis数据类型时非常有用。 SerializeHelper类则涉及序列化与反序列化的操作。在Redis中存储数据时,经常需要将对象序列化成可存储的格式,如二进制或JSON,然后再进行存储。读取时,再将这些数据...

    docker redis 3.2 配置文件

    日志信息对于理解和解决问题非常有用。 6. **容器化优化**: 除了 Redis 的配置,Dockerfile 或 Docker Compose 文件也会影响 Redis 的运行。例如,可能使用 `HEALTHCHECK` 来检查 Redis 服务的健康状态,或者使用...

    redis全部gz包

    7. **TTL(Time To Live)**:Redis允许为键设置生存时间,到期后键会自动删除,这在缓存管理中非常有用。 8. **集群**:Redis Cluster是Redis的分布式解决方案,可以将数据分布到多个节点,提供高可用性和水平扩展...

    redis实现排行榜

    - 如果成员已经存在,`ZADD` 会更新该成员的分数,这在处理动态变化的分数时非常有用。 2. 查询排行榜: - 获取整个排行榜:`ZRANGE 排行榜名 0 -1 WITHSCORES`,这将返回所有成员及其分数。 - 获取 Top N:`...

    redis-3.0.1.rar

    Debug.zip文件可能包含了调试相关的工具和资料,这对于开发者来说非常有用,如果遇到Redis运行异常,可以借助这些工具进行问题排查。 Redis服务的启动有多种方式。一种是通过命令行界面(CLI)手动启动,你可以找到...

    redis-windows-6.2.6.4.zip

    这对于构建实时应用或者实现分布式系统中的异步任务处理非常有用。 在标签中提到了“windows”,这意味着Redis不仅在Linux环境下表现出色,也可以很好地在Windows操作系统上运行,为跨平台开发提供了便利。对于那些...

    redis图形化监控工具

    Redis 图形化监控工具 RedisLive 是一款用 Python 编写基于 WEB ...RedisLive 是一个非常有用的 Redis 图形监控工具,它可以实时监控 Redis 数据,提供了可视化的界面来展示 Redis 实例中的数据,分析查询模式和峰值。

    Redis 中文文档

    这对于构建实时的应用程序非常有用。 #### 四、事务(transaction) 事务是Redis中一组操作的集合,在执行时被视为一个整体。这意味着事务内的所有命令要么全部成功执行,要么全部失败。虽然Redis本身的事务机制并...

    Windows 64 Redis 工具

    通过运行这个脚本,你可以将Redis服务器设置为随系统启动而自动运行,这对于生产环境非常有用。批处理文件的工作原理通常是调用“sc create”命令来创建新的服务,并指定相关的启动参数,如服务名称、可执行文件路径...

    redis官网最新客户端

    1. **连接与断开**:客户端需要连接到Redis服务器,通过指定服务器的IP地址和端口号实现。完成任务后,客户端会断开与服务器的连接,释放资源。 2. **命令执行**:Redis支持多种数据结构的操作命令,如设置(SET)...

    Redis配置文件详解

    pidfile:当Redis以后台方式运行时,需要指定一个PID文件来记录Redis的进程号。默认值为/var/run/redis.pid,但用户可以根据实际情况指定其他地址。在运行多个Redis服务时,必须指定不同的pid文件和端口,以避免进程...

    redis windows 绿色版

    这对于构建实时通信系统非常有用。 9. 限制与优化: - Redis在Windows下的性能可能不如Linux,因为它主要针对Unix-like系统优化。在Windows上,注意内存限制、磁盘I/O和网络性能对Redis的影响。 - 可以通过调整...

    redis常用方法.txt

    ### Redis 常用方法详解 #### 连接 Redis 服务器 - **方法**: `connect` - **描述**: 使用此方法可以建立与 Redis 服务器的连接。 - **示例代码**: ...这对于开发高效、高并发的应用程序来说是非常有用的。

    Redis geo操作总结.pdf

    由于Redis的地理位置数据类型支持的范围查询操作等,它们在需要地理位置信息的智能应用中非常有用。使用这类数据类型可以轻松构建地理围栏(Geofence),允许应用检测设备是否进入或离开某个地理位置的区域。 在...

Global site tag (gtag.js) - Google Analytics