redis常用命令及redis5大数据类型

Redis学习笔记(redis命令参考网址:www.redisdoc.com)

./redis-server:启动服务,这种方式启动使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件,使用下面命令启动:

./redis-server redis.conf,redis.conf是一个默认配置文件,可以根据需要使用自己的配置文件;

./redis-cli:启动客户端,在远程服务上执行时用./redis-cli –h host –p port –a password,例如连接到主机为127.0.0.1,端口为6379,密码为mypass的redis服务:

./redis-cli –h 127.0.0.1 –p 6379 –a “mypass”;

shutdown: 关闭redis服务;

ping: 测试连接(返回PONG表示连接成功);

ps –ef|grepredis: 查看redis进程是否启动;

redis默认有16个库,默认在第1个,编号为0;

select 7:切换到第8个数据库;

dbsize:查看当前数据库key的数量;

flushdb:清空当前库;

flushall:清空所有库;

keys *:查询当前库的所有key名;

exists keyName:判断某个key是否存在,存在返回1,不存在返回0;

move k1 2:将k1移动到2号数据库;

expire key 秒钟:为给定的key设置过期时间;

ttl key:查看还有多少秒过期,-1表示永远不过期,-2表示已过期;

type key:查看key是什么类型;

redis五大数据类型:String,Hash,List,Set,Zset(sorted set):

1.String是redis最基本的数据类型,一个Key对应一个value。String是二进制安全的(即redis的String类型可以包含任何数据,比如jpg图片或者序列化的对象),redis中,一个字符串value最多可以是512M。

set/get/del/append/strlen:分别为添加/获取/删除/追加/值的长度;

append具体为append key v:为key追加v;

incr/decr/incrby/decrby:加减,一定要是数字才能进行加减;

incr/decr:加一或者减一,比如:incr k1,值在原来的基础上加一,decr减法类似;

incrby/decrby:加n或者减n,比如:incrby k1 20,一次增加了20,decrby减法类似;

getrange:获取指定区间范围的值,格式:getrange key n m;

setrange:覆盖指定区间范围的值,格式:setrange key n value,n代表偏移量;

setex k1 5 v1:设置键k1的值为v1,5秒后过期;

setnx k1 v1:只有在k1不存在时设置k1的值为v1(创建并赋值);

mset k1 v1 k2 v2k3 v3:同时设置多个值;

mget k1 k2 k3:同时获取多个值;

getset k1vvvvv1:先get再set;

 

2.Hash类似于java中的Map<String, Object>,是一个键值对集合,是一个String类型的field和value的映射表,hash特别适合用于存储对象。

hset user name zhangsan:username赋值为zhangsan;

hget user name:获取username;

hmset user id 001 name lisi age 24:同时设置多个值;

hmget user id name age:同时获取多个值;

hgetall user:同上;

hdel user age:删除userage;

hlen user:获取哈希表中字段的个数;

hexists username:查看哈希表user中,name字段是否存在;

hkeys user:获取哈希表user中的所有字段;

hvals user:获取哈希表user中所有值;

hincrby user age1:为哈希表user中的指定字段的整数值加上增量1;

hincrbyfloatuser weight 1:为哈希表user中的weight字段的浮点数值加上增量1;

hsetnx userweight 74.1:只有在字段weight不存在时,设置哈希表字段的值;

 

3.List是简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表的头部或者尾部,它的底层实际是一个链表。

lpush mylist 1 23:在mylist中插入了1,2,3,正进反出;

rpush mylist 1 23:在mylist中插入了1,2,3,正进正出;

lrange mylist nm:获取指定范围的元素;

lpop key:移出并获取列表的第一个元素;

rpop key:移出并获取列表的最后一个元素;

lindex key 0:取出索引为0的key值;

llen myList:长度;

lrem key n m:删除n个m;

ltrim key 开始index 结束index:删除不在该区间的值;

linsert mylistafter/before 3 hello:在mylist的3后/前面插入hello;

 

4.Set是String类型的无序集合(无序不重复),是通过HashTable实现的。

sadd mySet 1 2 34 4:向mySet的set中添加五个值,但由于有两个重复值,所以最后的结果是添加了四个值;

smembers mySet:返回集合中的所有成员;

sismember mySetx:判断x元素是否是集合mySet的成员;

scard mySet:获取集合的元素个数;

srem key value:删除集合中的元素;

srandmembermySet n:在mySet集合中随机取出n个数;

spop key:随机出栈;

smove key1 key2k1value;将key1中的k1value赋给key2;

sdiff key1key2:key1和key2的差集;

sinter key1key2:交集;

sunion key1key2:并集;

 

5.Zset(sorted set)也是String类型元素的集合,且不允许重复的成员,每个元素都会关联一个double类型的分数。Redis通过分数为集合中的成员进行从小到大的排序,zset的成员是唯一的,但分数(score)可以重复。

zadd zset01 60v1 70 v2 80 v3 90 v4 100 v5:向有序集合zset01中添加多个成员,或者更新已存在成员的分数;

zrange zset01 0-1:通过索引区间返回有序集合zset01指定区间内的成员;

zrange zset01 0-1 withscores:含义同上,带分数;

zrangebyscorezset01 80 100:通过分数返回有序集合zset01指定区间内的成员;

zrangebyscorezset01 80 (100:含义同上,左开右闭区间,分数>=80,<100;

zrangebyscorezset01 70 100 limit 2 2:从下标为2的成员开始截取2;

zrem zset01 v1:移除有序集合zset01中的v1;

zcard zset01:获取有序集合的成员数;

zcount zset01 8090:计算中有序集合中指定区间分数的成员数;

zrank zset01 v3:返回有序集合中指定成员的索引;

zscore zset01v5:返回有序集合中,成员v5的分数值;

zrevrank zset01v4:返回有序集合中v4的排名,按分数值递减排序;

zrevrange zset012 4:返回有序集中索引在2到4之间的成员,分数从高到低;

zrevrangebyscorezset01 90 60:返回有序集中分数从60到90的成员,分数从高到低排序;

 

红色标记的为特别重要的!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值