redis常用基础命令

一、redis基础
1.0 redis key操作指令
#redis 客户端显示中文
redis-cli --raw
#选择库,默认是0 最大为15 可以修改
select 0-15 

#redis中清除库的指令
#清空当前库
flushDB 
#清空所有库
flushall

# set
set key value

# del删除指令,删除一个或多个key
del key 

#exists 指令 检查指定key是否存在
exists key

#expire 为给定的key 设置生存时间 当key过期时 会被自动删除
expire key seconds 

#keys 查询所有符合给定模式pattern 的key
keys *		#匹配所有
keys h?llo	 #匹配hello hallo hsllo等 匹配一个字符
keys h*llo  #匹配hllo 和heeeello等 匹配多个任意字符
keys h[ae]llo#匹配hello hallo 匹配指定字符

# move key 库下标 将指定的key移动到指定的库
move key 1

# pexpire 和expire命令相似,但是它以毫秒为单位对key设置生存时间,version >2.6.0时生效
pexpire name 100 # 设置name的生存时间为 100毫秒

# pexpireat 以毫秒为单位的时间戳设置key的生存时间, >= 2.6.0
pexpireat name milliseconds-timestamp

# ttl 以秒为单位,返回给定key的剩余生存时间 当key不存在时返回 -2 当key存在但没有设置生存时间时 返回 -1
ttl name

#pttl 和ttl类似,返回的是毫秒
pttl name

#randomkey 随机从key中取出一个
randomkey 

# rename key newkey 修改key 的名称
rename name name1

#type 返回key所存储的值的类型。
string 字符串
list 列表
set 集合
zset 有序集合
hash 哈希表
1.1 string类型
# 设置key和生存时间 秒
setex name 100

#设置key和生存时间 毫秒
psetex name 100000

# setnx如果key存在,不做操作,如果不存在直接添加
setnx name wangyu

#msetnx 一次性设置多个key 如果key存在,不做操作,如果都不存在直接添加  原子操作
msetnx name 张三 age 19 #name存在不能执行 
msetnx address 成都 age 19 #都不存在,可以执行

#mset 设置多个值
mset name zhangsan age 18
#mget 获取多个值
mget name age

#strlen 获取value值的长度
strlen name 
#append 追加字符串
append name 123 # get name ==> zhangsan123
#getrange 索引从0开始截取value内容
getrange name 0 3 # zhan 
getrange name 3 -1 # ngsan123

#decr 进行数值类型-1操作
decr age
#decy by
decrby age 5 #减5岁
#incr +1操作
incr age # +1岁
incrby age 10 #加十岁
1.2 list类型

list集合和java中的集合类似,但是redis中的list类型有序可重复,可以通过lpush从左边加入 也可以通过rpush从右边加入。

# lpush 将某个值加入到一个key列表头
lpush lists zhangsan lisi wangwu 

# lpushx 同lpush,但是必须要保证这个key存在
lpushx lists zhangsan1 # lrange 显示 zhangsan1 zhangsan lisi wangwu

# rpush 将某个值加入到一个key列表末尾
rpuch lists aa bb cc # aa bb cc 

# rpushx 同rpush,但是必须要保证这个key存在
rpushx lists dd # aa bb cc dd

# lpop 返回和移除列表第一个元素
lpop lists # bb cc dd

# rpop 返回和移除列表末尾第一个元素
rpop lists # bb cc

# lrem 删除重复元素
lrem list 1 ee #删除list中1 个重复的ee

# lindex 获取某一个指定索引位置的元素
lindex list 1 # bb

# llen 获取列表元素个数
llen list

# lrange listname 下标从0开始
lrange list 0 -1 # 第一位到最后一位

# linsert 在某个元素之前插入一个元素
linsert list before ee gg

1.3 set类型

特点:set类型,类似java Set集合,元素无序,不可以重复

# 创建set集合
sadd sets zhangsan lisi wangwu zhangsan # 重复的元素会被默认覆盖

# 遍历set
smembers sets

# 返回集合中的元素个数
scard sets

# 返回并移除元素
spop sets #随机返回并移除一个元素

# 从一个集合中想另一个集合移动元素(必须是同类型集合 list不能移动到set)
sadd ages 18 19 20 
smove ages sets zhangsan  #将sets中的张三移动到ages中

# sismember 判断集合中是否存在该元素
sismember sets zhangsan 

# srandmember 随机返回集合中的一个元素
srandmember sets

# sdiff 去掉第一个集合中其他集合含有相同的元素
saddr set1 zhangsan lisi wangwu wangyu
saddr set2 xiaohei lisi zhangsan wangxiaoer
sdiff set1 set2 # 去掉set1中set2集合包含的相同的元素 zhangsan lisi 

# 求集合的交集
sinter set1 set2 

# 求和集/并集
sunion set1 set2 #两个集合合并并去重
1.4 zset 类型

set类型的变种,类似于java中的treeset 排序 不可重复 。

可排序set、sortset,排序方式:集合中的每个元素都带有一个分数,按照分数排序

#添加一个有序集合
zadd zstes 10 zhangsan 9 xiaoli 8 xiaozhang 100 laowang

#返回有序集合个数
zcard zsets # 4

#返回一个范围内的元素
zrange zsets 0 -1  #升序从头到尾所有元素 laozhang xiaoli zhangsan laowang
zrange zsets 0 -1 withscores	# 升序从头到尾所有元素并携带分数

zrevrange zsets 0 -1 			# 降序
zrevrange zsets 0 -1 withscores  # 带分数降序

# 按照分数查找一个范围内的元素
zrangebyscore zsets 10 100 # zhangsan laowang

# 返回排名
zrank zsets laowang # 3 
zrank zsets zhangsan # 2

#倒序排名
zrevrank zsets zhangsan # 1
zrevrank zsets laowang # 0

# 查看某个元素的分数
zscore zsets zhangsan # 10

# zrem 删除某个元素
zrem zsets xiaoli # 1

# 给某个特定元素加分
zincrby zsets 50 zhangsan #zhangsan加50分 

1.5 hash类型

redis key (string ) value (map) key无序

类似于java中的map

# hset 设置一个key/value对
hset maps name zhangsan 

# hget 获取一个key对应的value
hget maps name # zhangsan

# hgetall 遍历map
hgetall maps # name zhangsan  age 19

# hdel 删除某个key
hdel maps name 

# hexists判断一个key是否存在 
hexists maps name

# hkeys 获得所有的Key
hkeys maps 

# hvals 获得所有的value
hvals maps

# hmset 设置多个键值对
hmset maps address cd gender 1

# hmget 获取多个值
hmget name age gender 

# hsetnx 设置一个不存在的键值
hsetnx name zhangsan # 不成功
hsetnx course redis # 成功

# hincrby 为value 进行加法运算,value必须是数值类型
hincrby maps age 10 #增加十岁 29

# hincrbyfloat 为value加入浮点值
hincrbyfloat 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值