05_Redis_String_命令

官方文档

在这里插入图片描述

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

Redis-Key基本命令

redis中文网

127.0.0.1:6379> ping
PONG
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set name xsy
OK
127.0.0.1:6379> exists name //判断当前数据库是否存在key为name的value
(integer) 1
127.0.0.1:6379> keys *
1 ) “name”
127.0.0.1:6379> move name 1 //从当前数据库将key为name的键值移除
(integer) 1
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379>

127.0.0.1:6379> keys *
1 ) “name1”
2 ) “name”
127.0.0.1:6379> expire name 10 //设置键为name的值,10秒后过期自动清除
(integer) 1
127.0.0.1:6379> KEYS *
1 ) “name1”
127.0.0.1:6379>

127.0.0.1:6379> expire name1 10 //设置键为name1的值,10秒后过期自动清除
(integer) 1
127.0.0.1:6379> ttl name1 // ttl 可以查看name1的剩余时间
(integer) 5
127.0.0.1:6379> ttl name1
(integer) 3
127.0.0.1:6379> ttl name1
(integer) 2
127.0.0.1:6379> ttl name1
(integer) -2 // -2代表时间已经结束
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379>

利用该方法,服务器可以将一些数据做一下缓存,将一些热点数据,让其在一段时间后自动过期

127.0.0.1:6379> set name xsy
OK
127.0.0.1:6379> set age 23
OK
127.0.0.1:6379> keys *
1 ) “name”
2 ) “age”
127.0.0.1:6379> type name // 查看当前key的类型
string
127.0.0.1:6379> type age
string

String

String类似的使用场景:value除了是我们的字符串还可以是我们的数字!

  • 计数器
  • 统计多单位的数量
    在这里插入图片描述
  • 对象缓存存储

#########################################################################
127.0.0.1:6379> keys *
1 ) “age”
2) “name”
127.0.0.1:6379> get name
“xsy”
127.0.0.1:6379> append name hello // 在键为name的值后追加一个字符串“hello”
(integer) 8
127.0.0.1:6379> get name
“xsyhello”
127.0.0.1:6379> strlen name // 提取键为name的值的长度
(integer) 8
127.0.0.1:6379> exists key1 //判断key值是否存在
(integer) 0
127.0.0.1:6379> exists name1
(integer) 0
127.0.0.1:6379> append name1 zhangsan //追加字符串,如果当前key不存在就相当于set key
(integer) 8
127.0.0.1:6379> keys *
1 ) “name”
2) “name1”
3) “key1”
4) “age”
#########################################################################
步长 : i++;i +=5
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 //单步减一
(integer) 1
127.0.0.1:6379> get views
“1”
127.0.0.1:6379> incrby views 10 // 设置步长,一次性加10
(integer) 11
127.0.0.1:6379> get views
“11”
127.0.0.1:6379> decrby views 5 // 设置步长,一次性减5
(integer) 6
127.0.0.1:6379> get views
“6”
#########################################################################
字符串范围 :range
127.0.0.1:6379> set key1 “hello,xsy”
OK
127.0.0.1:6379> get key1
“hello,xsy”
127.0.0.1:6379> GETRANGE key1 0 4 // 获取key1 字符串从下标0到4之间的字符
“hello”
127.0.0.1:6379> GETRANGE key1 6 8 // 获取key1 字符串从下标6到8之间的字符
“xsy”
127.0.0.1:6379> GETRANGE key1 0 -1 // 0到-1代表获取全部的字符
“hello,xsy”
127.0.0.1:6379> set key2 abcdefg
OK
127.0.0.1:6379> get key2
“abcdefg”
127.0.0.1:6379> SETRANGE key2 1 xx //替换指定位置开始的字符串,从下标1位置开始替换为“xx”
(integer) 7
127.0.0.1:6379> get key2
“axxdefg”

#########################################################################
setex(set with expire):如果当前值存在再设置过期时间
setnx(set if not exist):如果当前值不存在再设置(在分布式锁中会常常使用!)
127.0.0.1:6379> set key3 60
OK
127.0.0.1:6379> setex key3 30 “hello”//key3存在,设置key3的值为“hello”,30s后过期
OK
127.0.0.1:6379> ttl key3
(integer) 25
127.0.0.1:6379> ttl key3
(integer) 22
127.0.0.1:6379> get key3
“hello”
127.0.0.1:6379> ttl key3
(integer) 3
127.0.0.1:6379> ttl key3
(integer) -2
127.0.0.1:6379> get key3
(nil)
127.0.0.1:6379> setnx key4 “redis”// 只有当key4不存在时才可以设置成功
(integer) 1
127.0.0.1:6379> get key4
“redis”
127.0.0.1:6379> setnx key4 “my_redis” //当key4存在时创建失败
(integer) 0
127.0.0.1:6379> get key4
“redis”
#########################################################################
mset:批量设置值
mget:批量获取值
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3 k4 v4 //同时设置多个值
OK
127.0.0.1:6379> keys *
1 ) “k4”
2 ) “k3”
3 ) “k2”
4 ) “k1”
127.0.0.1:6379> mget k1 k3 //同时获取多个值
1 ) “v1”
2 ) “v3”
127.0.0.1:6379> mget k1 k2 k4
1 ) “v1”
2 ) “v2”
3 ) “v4”
#########################################################################
设置对象
set user:1 {name :zhangsan , age : 3} //设置一个user:1 对象 值为json字符来保存一个对象!

127.0.0.1:6379> mset user:1 {name:zhangsan,age:23}
OK
127.0.0.1:6379> keys *
1 ) “age”
2 ) “name”
3 ) “user:1”
127.0.0.1:6379> get user:1
“{name:zhangsan,age:23}”
127.0.0.1:6379> mset user:1:name lisi user:1:age 24 //这里的key是一个巧妙的设计: user:{id}:{filed} ,如此设计在Redis中是完全OK了!
OK
127.0.0.1:6379> keys *
1 ) “user:1:name”
2 ) “age”
3 ) “name”
4 ) “user:1:age”
5 ) “user:1”
127.0.0.1:6379> mget user:1:name user:1:age
1 ) “lisi”
2 ) “24”

#########################################################################
getset :先get然后在set
127.0.0.1:6379> getset db redis // 如果不存在值,则返回nil
(nil)
127.0.0.1:6379> get db
“redis”
127.0.0.1:6379> getset db xsy_redis // 如果存在值,获取原来的值,并设置新的值
“redis”
127.0.0.1:6379> get db
“xsy_redis”

#########################################################################

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值