redis将散裂中某个值自增_Redis实战读书笔记_Redis的5种数据结构

本文是Redis实战的读书笔记,介绍了Redis的5种基本数据结构:1) 字符串,包括SET和GET操作;2) 链表,讲解了LPUSH、RPUSH、LPOP、RPOP等命令;3) 集合,解释了SET集合的独特性质和相关操作;4) 散列,展示了如何插入、获取和移除键值对;5) 有序集合,讨论了ZADD、ZRANGE等命令及其应用。
摘要由CSDN通过智能技术生成

https://github.com/josiahcarlson/redis-in-action 对应java等语言的代码

http://redis.io/commands  //查询Redis命令的官网

1.2 redis数据结构简介

1.2.1 Redis中的字符串

1)SET -设置键值对

官网说明:SET key value[expiration EX seconds|PX milliseconds] [NX|XX]

Set key to hold the string value. If key already holds a value, it is overwritten, regardless of its type. Any previous time to live associated with the key is discarded on successful SET operation.

Options Starting with Redis 2.6.12 SET supports a set of options that modify its behavior:EX seconds -- Set the specified expire time, in seconds.PX milliseconds -- Set the specified expire time, in milliseconds.NX -- Only set the key if it does not already exist.XX -- Only set the key if it already exist.Note: Since the SET command options can replace SETNX, SETEX, PSETEX, it is possible that in future versions of Redis these three commands will be deprecated and finally removed.

Return Value:

Simple string reply: OK if SET was executed correctly. Null reply: a Null Bulk Reply is returned if the SET operation was not performed because the user specified the NX or XX option but the condition was not met.

命令格式:SET key value [expiration EX seconds|PX milliseconds]    [NX|XX]

e.g 1SET hello  world

e70e82822598?from=groupmessage

简单的set命令

e.g 2 在存储键值对时指定过期时间和策略:set mykey Hello EX 150 NX

e70e82822598?from=groupmessage

指定过期时间

2)GET -  获取指定键对应得值

官网说明:GET key

Get the value of key. If the key does not exist the special value nil is returned. An error is returned if the value stored at key is not a string, because GET only handles string values.

Return value:

Bulk string reply: the value of key, or nil when key does not exist.

命令格式:GET key

e.g  1get  hello

e70e82822598?from=groupmessage

get命令使用

1.2.2 使用Redis存储链表

链表操作的命令:LPUSH      //将元素推入链表的左端

RPUSH      // 将元素推入链表的右端

LPOP        //从链表的左端弹出元素

RPOP       //从链表的右端弹出元素

LINDEX      //从链表的指定位置上获取一个元素

LRANGE     //获取链表指定范围上的所有元素

例子:

向名为list-key的链表中插入3个元素:rpush list-key item1

rpush list-key item2

rpush list-key  item3

e70e82822598?from=groupmessage

向list-key链表中插入3个元素

取出链表中的所有元素:

命令:lrange list-key   0   -1

aliyun_mine:0>lrange list-key 0 -1

1)  "item1"

2)  "item2"

3)  "item3"

aliyun_mine:0>

e70e82822598?from=groupmessage

取出链表中的所有元素

取出链表中角标为1的元素:

命令:lindex list-key 1

e70e82822598?from=groupmessage

取出角标1下的元素

1.2.3 Redis的set集合

Redis的set集合和链表都可以用于存储多个字符串, 它们之间的不同在于,列表可以存储多个相同的字符串,而SET集合则可以通过散列值来保证自己存储的每个字符串都是各不相同的。 (这些散列值只有键,但没有与键相关联的值)。

Redis的set集合使用无序方式存储元素。

命令:sadd    //使用sadd命令将元素添加到set集合中

srem    //使用srem命令将元素从set集合中移除。

sismember  //使用sismember 命令可以快速地检查一个元素是否存在于set集合中

smembers  //使用smembers命令可以获取set集合中的所有元素

例子:

创建一个set集合,并向其中添加三个元素se1、 se2、 se3。

e70e82822598?from=groupmessage

向set集合中加入3个元素

#获取set集合中的所有元素:

命令:

SMEMBERS  key

例子:smembers set-key

e70e82822598?from=groupmessage

获取set集合中的所有元素

#判断se4是否存在于set-key集合中

命令:

SISMEMBER  key   element

例子:

e70e82822598?from=groupmessage

查看set-key集合中是否存在s4元素

#把se3从set集合中移除srem set-key se3

e70e82822598?from=groupmessage

从集合中移除元素

1.2.4 Redis的散列hash

Redis的散列(hash)可以存储多个键值对之间的映射。和字符串一样,散列存储的值既可以是字符串。又可以是数字值,并且用户同样可以对散列存储的数字值执行自增操作或自减操作。

向散列中插入元素

从散列中获取元素

从散列中移除元素

#创建一个名为hash-key的散列,并向其中添加一个sub-key1 value1的键值对:hset hash-key sub-key1 value1 #hset命令会返回一个值来表示给定的键是否已经存在于散列里面

e70e82822598?from=groupmessage

向hash里面添加三个键值对

#获取散列中的所有值:

命令:hgetall hash-key

e70e82822598?from=groupmessage

获取散列中的所有值

#从散列里面获取某个键的值:

命令:hget hash-key sub-key1

e70e82822598?from=groupmessage

从散列里面获取某个键的值

#从散列里面删除键值对

命令:hdel hash-key sub-key1

e70e82822598?from=groupmessage

从散列里面删除指定的键值对

1.2.5 Redis的有序集合zset

有序集合zset的元素由俩部分构成:(1)  键member

(2)  分值score

操作zset的命令:ZADD #将一个带有给定分值的成员添加到有序集合里面

ZRANGE    #根据元素在有序集合中的位置,从有序集合中获取多个元素

ZRANGEBYSCORE  #获取有序集合在给定分值范围内的所有元素

ZREM        #移除

#创建一个zset-key有序集合,并向其中添加3个元素zadd zset-key 728 member1

zadd  zset-key 982  member0

zadd  zset-key 982  member0

e70e82822598?from=groupmessage

向zset-key集合中添加3个元素

取出有序集合中的所有元素:ZRANGE zset-key 0 -1 withscores

e70e82822598?from=groupmessage

取出zset-key有序集合中的所有元素

#移除键为 member1的元素:zrem zset-key member1

e70e82822598?from=groupmessage

移除集合中的指定元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值