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:将user的name赋值为zhangsan;
hget user name:获取user的name;
hmset user id 001 name lisi age 24:同时设置多个值;
hmget user id name age:同时获取多个值;
hgetall user:同上;
hdel user age:删除user的age;
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的成员,分数从高到低排序;
红色标记的为特别重要的!