redis基本类型

一、String(字符串)

90%的java程序员,只会String

# 设置值
set key1 v1

#  获得值
get key1

# 获得所有的key
keys * 

#判断某一个key是否存在
exists key1

# 追加字符串,如果此时key不存在,就相当于set了key
append key1 "hello"

# 获取字符串的长度
strlen key1

在这里插入图片描述

浏览量怎么来的

set views 0

get views

# 当有用户来看的时候,就让views + 1
incr views  # 自增1

# 让浏览量 -1
decr key   # 自减1

# 直接涨10个
incrby views 10  # 设置步长,指定增长量

# 直接降10个
decrby views 10
截取字符串
# 将key1所代表的value字符串,从第0个截取到第3个
getrange key1 0 3

# 全部输出
getrange key1 0 -1
替换字符串
# 把key2字符串从第1个数开始,替换为xx(替换2个)
SETRANG key2 1 xx
判空
# setex (set with exist) # 设置过期时间
# 设置key3的值为"hello",存在30秒
setex key3 30 "hello" 

# setnx (set if not exist)	# 如果不存在再设置
setnx mykey "redis"
1  # 成功为1

setnx mykey "MongoDB"
0  # 失败为0

get mykey  # redis
批量获取值和批量设置值
# mset 一下子创建多个键和值
mset k1 v1 k2 v2 k3 v3


# mget 一下子获取多个键和值
mget k1 k2 k3
"v1"
"v2"
"v3"

# msetnx 不存在就创建(如果原来已经存在,那就失败了)
# msetnx是一个原子性操作,一块成功或一块失败
msetnx k1 v1 k4 v4
# 0


# 对象
# 设置一个user:1对象,只为json字符来保存对象
# user:1的name设为zhangsan,age设为3
set user:1 {name:zhangsan, age:3}
组合命令 : get-set
# getset 先get再set
# 用于设置指定 key 的值,并返回 key 的旧值。
getset db redis # 如果不存在值,则返回nil(设置key为db,value为redis)
nil

get db   
"redis"

# 获取原来的值,并设置新的值,直接设置新值不就行了吗???
getset db mongodb # 如果存在值,获取原来的值,并设置新的值
"redis"

get db
"mongodb"

使用场景:

  • 计数器
  • 统计多单位的数量
  • 粉丝数
  • 对象缓存存储

二、List

列表

在Redis里面,可以把list玩成栈、队列、阻塞队列

所有的list命令都是 l 开头的=

# 放值(先进后出) 插入到列表头部 --- 从左边放进去
lpush

lpush list one 
lpush list two 
lpush list three 

在这里插入图片描述

# 放值 插入到列表尾部(后进先出) --- 从右边放进去
rpush

rpush list right

# 获取一下全部的值
lrange list 0 -1

# 输出
“three”
“two”
“one”
“right”

“three” “two” “one” “right”

那我要是想移除一个元素呢?pop想都不用想

# 想把左边的移出去
lpop list 

# 现有的 “three” “two” “one” “right”
"three"


# 想把右边的移出去
rpop list 

我想得到指定位置的值(通过下标获取list中的某一个值)

# 左边第二个
lindex list 1

# 左边第一个
lindex list 0

我想移除指定位置的值(通过下标获取list中的某一个值)

# 想取关某个博主
# 取关uid
# 移除1个值,这个值叫“one”
lrem list 1 one

我想得到list的长度

llen list

修剪list

# 只留下指定值,即通过下标截取指定的长度,会发现这个list已经被截断了
ltrim mylist(key) 1 2
t中的某一个值)

```bash
# 想取关某个博主
# 取关uid
# 移除1个值,这个值叫“one”
lrem list 1 one

我想得到list的长度

llen list

修剪list

# 只留下指定值,即通过下标截取指定的长度,会发现这个list已经被截断了
ltrim mylist(key) 1 2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值