Redis五大数据类型之String

五大数据类型

官方文档

image-20211202140317415

全文翻译

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings)散列(hashes)列表(lists)集合(sets)有序集合(sorted sets) 与范围查询, bitmapshyperloglogs地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication)LUA脚本(Lua scripting)LRU驱动事件(LRU eviction)事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

我们现在讲的命令一定要记住,后面使用springBoot操作redis命令是一样的

  1. 添加 set name swc
  2. 查询 get name
  3. 查看所有的key keys *
  4. 移除key move name
  5. 设置过期时间 expire name 10
  6. 查看key的剩余时间 ttl name
  7. 查看key得类型 type name

​ …

后面遇到不会的命令,可以在官网查看帮助文档!

image-20211202141555846

String(字符串)
##############################################
127.0.0.1:6379> set key1 v1   # 设置值
OK
127.0.0.1:6379> get key1      # 获取值
"v1"
127.0.0.1:6379> keys *        # 获取所有的key
1) "key1"
2) "name"
127.0.0.1:6379> EXISTS key1   #某一个key是否存在
(integer) 1
127.0.0.1:6379> APPEND key1 "hello"  #追加字符串,如果key不存在,则新建
(integer) 7
127.0.0.1:6379> get key1
"v1hello"
127.0.0.1:6379> STRLEN key1    # 获取key值得长度
(integer) 7
127.0.0.1:6379> append key1 ",shiweichao"
(integer) 18
127.0.0.1:6379> ll
127.0.0.1:6379> STRLEN key1
(integer) 18
127.0.0.1:6379> get key1
"v1hello,shiweichao"
##############################################
# 实现自增自减
i++

127.0.0.1:6379> set views 0
OK
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> incr views    # 自增1
(integer) 1
127.0.0.1:6379> incr views
(integer) 2
127.0.0.1:6379> get views
"2"
127.0.0.1:6379> decr views     # 自减1
(integer) 1
127.0.0.1:6379> decr views
(integer) 0
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> incrby views 10   # 增加步长10
(integer) 10
127.0.0.1:6379> incrby views 10
(integer) 20
127.0.0.1:6379> decrby views 5     # 减少步长5
(integer) 15

##############################################
# range
# 截取字符串-getRange
127.0.0.1:6379> set key1 "hello,shiweichao"
OK
127.0.0.1:6379> get key1
"hello,shiweichao"
127.0.0.1:6379> GETRANGE key1 0 3     # 截取字符串【0,3】
"hell"
127.0.0.1:6379> getrange key1 0 -1    # 查看所有字符串和get key是一样的
"hello,shiweichao"

# 替换字符串--setRange
127.0.0.1:6379> get key2
"abcdefg"
127.0.0.1:6379> SETRANGE key2 2 xx  # 将字符串从第二个位置替换
(integer) 7
127.0.0.1:6379> get key2
"abxxefg"
##############################################
# setex (set with expire) # 设置过期时间
# setnx (set if not expire) # 不存在再设置(在分布式锁中常使用)
127.0.0.1:6379> setex key3 30 123  # 设置key3 值为123,并30 秒后过期
OK
127.0.0.1:6379> setnx key3 "redis"  # 如果key不存在,再设置
(integer) 0
127.0.0.1:6379> 

##############################################
# mset  #一次设置多个键值对
# mget  # 一次获取多个值

127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3   # 同时设置多个值
OK
127.0.0.1:6379> keys *
1) "k2"
2) "k3"
3) "k1"
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> msetnx k1 v1 k4 v4 # msetnx是一个原子性的操作,要么一起成功,要么一起失败!
(integer) 0
127.0.0.1:6379> 

# 对象
set user:1 {name:zhangsan,age:3} # 设置一个user:1对象值为json对象来保存一个对象。

#这里的key是一个巧妙的设计:user:{id}:{filed},如此设计在Redis中是完全ok的。

127.0.0.1:6379> mset user:1:name "zhangsan" user:1:age 3
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "zhangsan"
2) "3"
127.0.0.1:6379> 

##############################################
#getset 先get后set
127.0.0.1:6379> getset db redis  # 如果不存在,则返回null; 如果存在则先返回,后设置新的值
(nil)
127.0.0.1:6379> get db
"redis"
127.0.0.1:6379> 




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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值