Redis常用操作指令集

redis的安装参考:

https://blog.csdn.net/qq_39135287/article/details/83474865

https://blog.csdn.net/lvxinchun/article/details/107001832

https://www.cnblogs.com/heqiuyong/p/10463334.html

1.启动命令:

redis-server
或者
redis-server & (以后台方式启动)
或者
redis-server /usr/local/redis/etc/redis.conf 
(表示后台运行,后面紧跟自己的redis.cong文件的路径,该文件需将daemonize no 改成daemonize yes)
或者
redis-cli -h 127.0.0.1 -p 6378 -a ****
(表示以特定的ip地址,端口号启动,其中-a后面指的是客户端的密码,密码为可选项,未设置可不写)

redis-cli --raw
(以这种方式启动,则可以在redis显示中文,否则中文将会是乱码)

2.停止服务端

pkill redis
或者
shutdown
或者
redis-cli shutdown
或者
kill -9 PID

3.检测后台进程是否存在

ps -ef |grep redis

4. 检查是否安装redis-cli 和 redis-server

whereis redis-cli
whereis redis-server

 5.设置密码

config set requirepass ***(***即表示需要设置的密码)

6.获取现有redis密码

config get requirepass

 7.检测6379端口号是否在监听

netstat -lntp | grep 6379

8.获取某一个redis的数据库 

select index (index表示库的下标,从0开始计算。
redis默认共有16个数据库,redis默认使用1号数据库,即下标为0的数据库)

9.查看当前数据库键的数量

dbsize

10.清空当前数据库

flushdb

11.清空整个redis的所有数据库(禁止使用该命令)

flushall

12.为键值设置过期时间,单位为秒

expire keyname seconds(seconds表示过期时间)

13.查看还有多少秒过期

ttl keyname
(-1表示永不过期,-2表示已过期)
type keyname
(查看该key的value是属于什么类型,此处的类型是指在redis中的类型)
object encoding keyname
(查看该key的value是属于什么字节编码的类型,一个key的字节编码可能会随时发生变化,
例如:
set k1 1
object encoding k1 -- 返回的就是 int
再进行追加:
append k1 2
object encoding k1 -- 返回的就是bimstr字符串类型的
在进行加减计算之后,k1的字节编码类型又会变回int。
)

14.string类型的常用指令

//给某一个键赋值:
set keyname value
//只有当键不存在时,赋值才会成功:
setnx keyname value
//获取某一个键的值:
get keyname value
//给某一个键追加值:
append keyname value
//获取某一个键值的长度:
strlen keyname
//同时设置多个键值对:设值时一个失败就全都失败,这个命令是原子性的
mset keyname1 value1 keyname2 value2 ...
//同时获取多个键值对的值:
mget keyname1 value1 keyname2 value2 ...
//同时设置一个或多个键值对,当且仅当所有给定的键不存在时才有效:
msetnx keyname1 value1 keyname2 value2
//截取一定长度字符串的值:
//(beginIndex 起始位置;endIndex 截止位置,如果endIndex=-1就表示直接截取到最后一个字符,在redis中有正向顺序,也有负向顺序。正向顺序从左往右下标0开始到字符串的最后一位,负向顺序从右往左下标从-1开始到最开始的位置:-1,-2,-3...;因此-1就表示某个字符串的最后一位,可以避免下标越界的情况发生。)
getrange keyname beginIndex endIndex  
//给一个个字符串类型的key的一定范围内进行赋值:
setrange keyname beginIndex value endIndex value
//设置键值对的同时设置过期时间,单位秒:
setex keyname 过期时间 value
//获取原来的值的同时并赋予新的值,且返回旧值:
getset keyname new-value
/**
 * 以下指令当且仅当值为数字形式的时候可以进行加减操作
 */
//只加1:
incr keyname
//只减1
decr keyname
//可加 n,n表示任何数字
incrby keyname n
//可减 n,n表示任何数字
decrby keyname n

15.list常用操作指令,list:有序可重复

//从左边/右边插入一个或多个值
lpush/rpush keyname value1 value2 value3 ... 
(其中,lpush表示左,即首位;rpush表示右,即末位)
//弹出左边/右边的第一个元素,弹出也可看做删除
lpop/rpop keyname
(lpop表示左,即首位;rpop表示右,即末位。该指令表示要么弹出第一个元素,要么弹出最后一个元素)
//从keyname1的右边弹出一个元素并将改元素插入到keyname2的左边
rpoplpush keyname1e keyname2
//按照索引下标获取元素(从左到右的顺序获取)
lrange keyname beginIndex endIndex
(lrange keyname 0 -1 表示获取该list中全部元素的值。
因为从首位开始查是从0开始,从尾开始查是从-1开始,所以,0 -1 表示从头查到尾)
//按照索引下标获取元素值 (从左往右的顺序获取)
lindex keyname index
(lindex keyname -1 表示从右往左获取的第一个元素值,可以理解为是从左往右的最后一个元素值)
//获取list的长度,相当于java中的list.size()方法
llen keyname
//在某一个元素值之前或者之后加入一个新的值
linsert keyname before/after value new-value
(value表示该list中已经存在的值,new-value表示需要新加入的值)
//********将list中的某一个元素删除*********
lrem keyname count value
(count为正数,表示从左往右删除count个value;
count为负数,表示从右往左删除count个value;
切记count为0时,表示删除该集合中所有的这个value。
注:list是有序可重复的,所以同一个value可以有多个,只是下标不一样)

16.set集合常用命令。Redis的Set集合是String类型的无序不可重复的集合。它的底层其实是value为null的hash表,所以添加,删除,查找的复杂度都是O(1)。

//添加一个set集合:
sadd keyname value1 value2 value3 ...
//获取某一个set集合中的所有元素:
smembers keyname
//判断某set集合中是否存在某个value,存在则返回1,否则返回0
sismember keyname value
//获取set集合中的元素个数
scard keyname 
//删除set集合中的某一个或多个元素
srem keyname value1 value2 value3 ...
//随机从某集合中弹出一个值,且会将该值删除掉,可用于抽奖过程中
spop keyname
//随机从某set集合中弹出多个值,但不会将这些值删除掉,count表示弹出的个数
srandmemberv keyname count
/**
 * 以下指令可以用于处理比较复杂的业务逻辑场景
 */
//获取两个set集合的交集元素
sinter keyname1 keyname2
//获取两个set集合的并集元素
sunion keyname1 keyname2
//获取两个set集合的差集元素
sdiff keyname1 keyname2

17.hash集合常用指令。hash是一个键值对集合,非常合适用于存储对象。

//添加一个hash的集合:
hset keyname fieldname value
eg:hset user user:yl:username yl
(其中keyname表示hash集合的键值,可理解为一个对象,field表示所存对象的属性,value表示属性值)

//同时给hash对象中的多个属性赋值:
hmset keyname fieldname1 value1 fieldname value2 ...
eg:hmset user user:23:age 23 user:1332334567:telphone 1332334567

//获取hash集合中的属性值:
hget keyname fieldname
eg:hget user user:yl:username

//获取hash表中某个key的所有属性及其属性值
hgetall keyname

//查看hash中的某个key的属性是否存在,存在返回1,不存在返回0:
hexists keyname fieldname

//获取hash表中某键的所有属性:
hkeys keyname

//获取hash表中某键的所有属性的属性值:
hvals keyname

//给hash表中某key的某个属性的值进行增量操作,即做加法,且该属性的值必须为数字形式:
hincrby keyname fieldname count (count可以为负数做减法)
eg:hincrby user user:23:age 7 
(返回结果为30,count即表示加多少,可以加负数实现减法)

//给hash表中的某key的属性进行赋值,若不存在则赋值,若存在则不进行赋值:
hsetnx keyname fieldname value

18.zset(sorted set)集合常用指令。redis的zset是有序不可重复的string集合类型,与set类似。

//添加一个zset的集合
zadd keyname score1 value1 score2 value2 ...
eg:zadd ageSort zhangsan 35 lisi 22 wangwu 31
(score即表示用于排序的序号或者称为权重,zset即是通过这个score实现有序性的
在进行添加的时候需要注意以下两点:
1.相同的value,不同的score,则后加的会覆盖之前的,可用于修改操作。
2.相同的score,不同的value,也会添加成功,他们的权重是一样的。)

//获取zset集合
zrange/zrevrange keyname beginIndex endIndex [WITHSCORES]
eg:zrange ageSort 0 1 (获取第一和第二个元素value)
(zrange ageSort 0 -1 表示获取所有的value
WITHSCORES 为可选项,表示将每个value的权重score也一并显示出来
zrange 表示从小到大排列
zrevrange 表示从大到小排列)

//通过权重范围来获取zset中的元素,从小到大排列
zrangebyscore keyname min max [WITHSCORES] [limit offset count]
(即表示为获取权重位于min 和 max 中的元素,从小到大排列出来)

//通过权重范围来获取zset中的元素,从大到小排列
zrevrangebyscore keyname max min [WITHSCORES] [limit offset count]
(即表示为获取权重位于min 和 max 中的元素,从大到小排列出来)

//给zset中的元素的权重做增量的操作,正数为加,负数为减
zincrby keyname incrcount value

//删除zset中的指定值的某个元素
zrem keyname value

//统计zset中某键在一定权重范围内的元素个数
zcount keyname scoreMin scoreMax

//获取zset集合中某键的某个元素的下标,从0开始,不是指权重,而是指下标
zrank keyname value

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值