redis通用命令
select 数字(切换数据库,数字为0~15,表示redis的16个数据库)
dbsize(查看数据库大小)
flushdb(清除当前数据库)
flushall(清楚全部数据库的内容)
keys *(查看所有键)
set key value(设置键和值)
get key(根据键获取值)
exists key(判断是否存在该键)
move key 1(移除键到另一个数据库成功返回1,否则返回0,1表示移到的数据库)
expire key 秒数(设置过期时间,单位是秒)
ttl key(查看该键还有多少秒过期)
type key(查看值的类型)
append key "value"(在相应的键后面追加字符串,若没有该键则新增)
strlen key(获取字符串的长度)
incr key(该键的值自增1)
decr key(该键的值自减1)
incrby key value(设置增量,给键的值加指定的值)
decrbykey value(设置增量,给键的值减指定的值)
getrange key 下标1 下标2(获取下标1到下标2的字符串)
getrange key 0 -1(获取键的全部字符串)
setrange key 下标 字符串(替换指定下标的字符串)
setex(set with expire) key 时间 value(设置多少秒过期)
setnx(set if not exist) key value(如果键不存在则新增)
mset key1 value1 key2 value2(可以同时设置多个值)
mget key1 key2 key3(可以获取多个值)
msetnx key1 value1 key2 value2(msetnx是一个原子性的操作,要么一起成功,要么一起失败)
String数据类型的常用命令
set 对象名:1数值{key:value,key:value}(设置一个对象,对象值为json)
mset 对象名:数值:key value 对象名:数值:key value
mget 对象名:数值:key 对象名:数值:key
getset key value(若该值存在,获取原来的值,并设置新的值,若没值,则返回nil【即为null的意思】,并插入该值)
List类型的常用命令
lpush 集合名 值(l表示方向,表示从左边往集合插入值)
lrange list 0 -1(通过区间获取具体的值)
rpush 集合名 值(r表示方向,表示从左边往集合插入值)
lpop 集合名(移除集合左边的第一个元素)
rpop 集合名(移除集合右边的第一个元素)
lindex 集合名 下标(获取集合相应下标的值)
llen 集合名(返回集合的长度)
lrem 集合名 个数 值(移除值)
ltrim 集合名 下标1 下标2(截取下标1到下标2的值)
rpoplpush 集合1 集合2(移除集合1的最后一个元素到集合2)
lset 集合名 下标 值(将指定集合的指定下标的值更新为当前的值)
linsert 集合名 before "值1" "值2"(在值1之前插入值2)
linsert 集合名 after "值1" "值2"(在值1之后插入值2)
注意:只有push和pop时l才是左的意思,其余命令l均表示list的意思
Set数据类型的常用命令
sadd 集合名 "value"(往集合里添加元素,注意:set集合里的元素无序且不允许重复)
smembers 集合名(查看指定集合的全部值)
scard 集合名(获取指定集合中元素的个数)
srem 集合名 值(移除指定集合的元素)
srandmember 集合名(随机抽取出一个元素)
srandmember 集合名 个数(随机抽取出指定个数的元素)
spop 集合名(随机移除集合中的元素)
smove 集合1 集合2 "value"(把集合1中指定的元素移到集合2)
sdiff 集合1 集合2(差集:查看两个集合不同的元素)
sinter 集合1 集合2(交集:查看两个集合共同的元素)
sunion 集合1 集合2(并集:查看两个集合合并后的全部元素)
Hash数据类型的常用命令
hset 集合名 key value(往集合添加键值对)
hget 集合名 key(取出集合的键值对)
hmset 集合名 key1 value1 key2 value2(往集合添加多个键值对)
hmget 集合名 key1 key2(取出集合的多个键值对)
hgetall 集合名(获取所有的键值对)
hdel 集合名 key(删除集合指定的键值对)
hlen 集合名(获取集合的长度)
hexists 集合名 key(判断集合中指定字段是否存在)
hkeys 集合名(获取集合里所有的键)
hvals(获取所有的value)
hincrby 集合名 value(给集合里指定的键的值加value这一个值,注意:value值能为负数)
hsetnx 集合 key value(如果集合不存在该键,则新增,否则新增失败)
Zset(有序集合)的常用命令
zadd 集合名 数值(排序用) value
zrangebyscore 集合名 -inf(负无穷) +inf(正无穷)(排序所有值,从小到大排序)
zrevrange 集合名 0 -1(从大到小排序)
zrangebyscore 集合名 -inf +inf withscores(显示数值)
zrangebyscore 集合名 -inf 数值 withscores(显示小于数值的数字,从小到大排序)
zrange 集合名 0 -1(显示集合里全部的元素)
zrem 集合名 value(移除集合里的元素)
zcard 集合名(获取集合里元素的个数)
zcount 集合 数值1 数值2(获取集合里指定区间元素的数量)
特殊数据类型常用命令
Geospatial类型(地理位置)
geoadd 集合名 经度 纬度 名称
geopos 集合名 值1 值2(获取指定集合指定元素的经纬度;单位为m、km、mi、ft)
geodist 集合名 值1 值2 单位(计算两个经纬度之间的直线距离)
georadius 集合 经度 纬度 半径 单位(以经纬度为中心,指定的半径内,查询集合中存在于该圆内的元素)
georadius 集合 经度 纬度 半径 单位 withdist(计算到中心的距离)
georadius 集合 经度 纬度 半径 单位 withcoord(显示元素的经纬度)
georadius 集合 经度 纬度 半径 单位 withdist withcoord count 数字(用count+数字限定查询出来的元素的个数)
georadiusbymember 集合名 元素名 半径 单位(以集合中某个元素为中心,指定的半径内,查询集合中存在于该圆内的元素)
geo底层的实现原理确实就是zset,可以使用zset命令来操作geo
Hyperloglog类型
例:(1、2、3)和(1、2、3、3)都是3,因为集合2里的3、3重复,只算一个
通常使用set集合(无序不重复)保存用户id,从而统计网站的访问数量,但消耗内存大,而使用hyperloglog只占12kb内存,但有误差
pfadd key value1 value2 value3(把指定的值加到相应的键里)
pfcount key(统计相应的键里值的数量,值可以重复,但统计的数量不会加上重复的值的数量)
pfmerge 目标key key1 key2(将key1和key2合并到目标key里,值不重复)
Bitmaps类型
位存储,一般用于统计用
通过操作二进制位来进行记录,就只有0和,1两个状态
setbit key offset(当前的值) value(value是0或1)
getbit key offset(获取指定key里的offset的value)
bitcount key(统计key里值是1的数量)
其他命令
密码的设置与登录:
config set requirepass "密码"(设置密码)
config get requirepass (获取密码)
auth 密码(登录:回车后返回ok表示登录成功)
给大家推荐一个redis的中文文档网站,在这个网站上有更全面的关于redis的命令的使用教程:https://www.redis.net.cn/