redis常用命令记录

redis的基本命令

  1. select 1:选择数据库1。(redis一共有16个数据库,默认16个,可以自己去redis的配置文件中改)
  2. keys *:查看所有的key。
  3. set age 1:设置key为age,value为1。
  4. get age:获取key为age的value。
  5. exists age:判断key为age的数据是否存在(返回1为存在,0为不存在)。
  6. move age 1:从数据库1中移除key为age的数据。
  7. expire age 10:设置key为age的数据10秒后过期。
  8. ttl age:查看key为age的数据还剩多久过期。
  9. type age:查看key为age的数据所存储的数据类型。
  10. flushdb:清除当前数据库的所有数据。
  11. flushall:清楚所有数据库的数据。
  12. config get requirepass:获取数据库密码。
  13. config set requirepass “123456”:设置数据库密码。
  14. auth 123456:密码验证,用于在设置了数据库密码后进行验证。

五大数据类型

String类型

  1. set name tom:设置key为name,value为tom。
  2. get name:获取key为name的value。
  3. append name “,hello”:在key为name的value后追加一段字符串。最后结果为:tom,hello
  4. strlen name:获取key为name的value的字符串长度。
  5. exists name:判断key为name的数据是否存在(返回1为存在,0为不存在)。
  6. getrange name 0 3:截取字符串,从下标0到3,结果为"tom,"。
  7. getrange name 0 -1:获取全部的字符串。

  1. set age 0。
  2. incr age:自增+1。
  3. decr age:自增-1。
  4. incrby age 10:设置步长为10,age增加10。
  5. decrby age 10,设置步长为10,age减去10。

  1. set mytext abcdefg。
  2. setrange mytext 1 a:字符串替换,1代表下标为1,zz代表需要替换的字符串。结果为:azzdefg。

  1. setex text1 30 “hello,world”:设置key为text1,value为hello,world,过期时间为30秒。
  2. setnx text2 “hello,world”:如果key为text2不存在才能设置成功,成功返回1,失败返回0。
  3. mset k1 v1 k2 v2 k3 v3:一次存储多个数据。
  4. mget k1 k2 k3:一次获取多个数据。
  5. msetnx k1 v1 k4 v4:一次存储多个数据,如果key存在则设置失败。这里k1是存在的,返回0,表示设置失败。虽然k4不存在,但是连同k4也设置失败了,这里体现了其原子性。
  6. getset text3 redis:先获取再设置。因为text3事先没有,获取到的是空值。然后设置了text3的value为redis。

List类型

  1. lpush list one:往key为list的列表头部插入value为one的数据。
  2. rpush list two:往key为list的列表尾部插入value为two的数据。
  3. exists list:判断list是否存在。
  4. lrange list 0 -1:查询key为list的列表中所有的数据。
  5. lrange list 0 1:获取下标从0开始到1的值。
  6. lindex list 0:通过下标获取值。
  7. llen list:获取list的长度。
  8. lpop list:移除表头的第一条数据(从最左边,即第一条数据)。
  9. rpop list:移除表尾的第一条数据(从最右边,即最后一条数据)。

  1. lpush list one。
  2. lpush list two。
  3. lpush list three。
  4. lrem list 1 one:移除key为list的列表中值为one的一个元素,因为列表中的值是可以重复,所以这种移除方法是可以指定个数的。

  1. lpush list one。
  2. lpush list two。
  3. lpush list three。
  4. ltrim list 1 2:通过下标对列表的截取,最后就只剩two和three了。one就被截断了。

  1. lpush list one。
  2. lpush list two。
  3. lpush list three。
  4. lpush list2 four。
  5. rpoplpush list list2:这是一个组合命令,将list中的最后一个元素移除并添加到list2中,最后list2中会有three和four两个元素,而list还剩one和two。(如果list2不存在,则会创建这个列表并将three放进去)。

  1. lpush list one。
  2. lpush list two。
  3. lpush list three。
  4. lset list 0 zero:将key为list的列表中下标为0的元素的值设置为zero。(如果list不存在或者超过下标,都会报错)。
  5. linsert list before “zero” “hello”:在值为zero的元素的前面插入一条值为hello的数据(有before当然就有after了)。

redis里的列表其实就是一个链表,在头尾插入或改动值效率最高,中间插入效率较低。

Set类型

和Java里的set类似,set里的值是不能重复的,本质就是一个无序不重复集合

  1. sadd myset “hello”:添加一个元素。
  2. smembers myset:查看myset中的所有值。
  3. sismember myset hello:判断hello是否存在于myset中。(1表示存在,0表示不存在)。
  4. scard myset:获取myset中的元素个数。
  5. srem myset hello:移除myset中值为hello的元素。

  1. sadd myset “hello”。
  2. sadd myset “world”。
  3. srandmember msyet:随机获取myset中的一个元素。
  4. srandmember msyet 2:随机获取myset中的两个元素。
  5. spop myset:随机移除myset中的一个元素。

  1. sadd myset “hello”。
  2. sadd myset “world”。
  3. sadd myset2 “hello1”。
  4. sadd myset2 “world1”。
  5. smove myset myset2 “hello”:将myset中的hello移动到myset2中。

  1. sadd myset a。
  2. sadd myset b。
  3. sadd myset2 b。
  4. sadd myset2 c。
  5. sdiff myset myset2:查看myset和myset2相比不同的元素,结果为a(因为是拿myset和myset2比,以myset为主,所以结果不是a和c)。
  6. sinter myset myset2:查看myset和myset2中相同的元素,结果为b。
  7. sunion myset myset2:查看myset和myset2合在一起的所有元素,结果为a,b,c。(这里不会算重复的元素)。

Hash类型

hash类型其实就可以看作Java中的Map类型,具体点大概就是key,<key,value>,map里的存的值是map类型

  1. hset myhash key1 value1:设置key为myhash的value为key为key1,value为value1的hash类型的数据
  2. hget myhash key1:获取key为myhash中key为key1的值,啥也别说了,这就是套娃。
  3. hmset myhash key2 value2 key3 value3:同时写多个值。
  4. hmget myhash key2 key3:同时获取多个值。
  5. hgetall myhash:获取myhash中所有的值。
  6. hlen myhash:获取myhash中存储的数据数量。
  7. hexists myhash key1:判断hash类型中指定的值是否存在。(1表示存在,0表示不存在)。
  8. hkeys myhash:获取hash中所有的key。
  9. hvals myhash:获取hash中所有的value。
  10. hsetnx myhash key1 value3:如果存在则设置。
  11. hdel myhash key1:删除数据。

  1. hset myhash key1 5。
  2. hincreby myhash key1 1:设置步长为1(可以设置负数,表示减),key1的值增加1。和String类型中的方法类似,同样incr方法也是一样的。

Zset类型

有序集合,其实就是在set的基础上增加了一个序号,用于分组和排序。

  1. zadd myset 1 one:新增一条数据,1表示序号,one是value。
  2. zadd myset 2 two 3 three:添加多个值。
  3. zrange myset 0 -1:遍历。
  4. zrangebyscore myset -inf +inf:进行升序排序并获取值,最后两个表示最大值和最小值,-inf表示负无穷,+inf正无穷,如果有具体的值可以写具体的值。结果是:one two three。由小到大。
  5. zrangebyscore myset 0 4 withscores:进行排序获取值并带上他们的序号,结果是:one 1 two 2 three 3。由小到大。
  6. zrevrangebyscore myset -inf +inf:进行降序排列。
  7. zrem myset one:移除一个元素。
  8. zcard myset:获取集合的长度。

  1. zadd myset 1 one 2 two 3 three。
  2. zcount myset 1 3:获取指定区间的成员数量,结果:3,这里是包含了1和3的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佛祖保佑永不宕机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值