四、redis常用指令
一、准备工作
-
服务端启动
指令
./redis-server -
服务端完整启动指令
指令
./redis-server path/to/redis.conf -
服务端关闭
指令
pkill -9 redis -
客户端启动
指令
./redis-cli -
检测redis服务是否启动
指令
ping返回PONG则服务可用127.0.0.1:6379> ping PONG -
客户端完整启动指令
redis-cli -h host -p port -a password -
选择数据库(0-15)
127.0.0.1:6379> select 8 OK 127.0.0.1:6379[8]> -
获取所有的
key_name指令keys *
二、字符串
-
设置指定的
key_name值指令
set key_name value127.0.0.1:6379[8]> set name fuqiang OK -
获取指定的
key_name值指令
get key_name127.0.0.1:6379[8]> get name "fuqiang" -
设置指定的
key_name并设置过期时间ex(秒) px(毫秒)指令
set key_name value expression[ex second | px milli second]127.0.0.1:6379[8]> set name 20 px 3000 OK 127.0.0.1:6379[8]> set name 20 ex 3 OK -
返回指定
key_name的值自增1指令
incr key_name127.0.0.1:6379[8]> set age 20 OK 127.0.0.1:6379[8]> incr age (integer) 21 -
返回指定
key_name的值自减1指令
decr key_name127.0.0.1:6379[8]> get age "21" 127.0.0.1:6379[8]> decr age (integer) 20 -
返回指定
key_name的值的长度指令
strlen key_name127.0.0.1:6379[8]> strlen name (integer) 7 -
返回字符串的
子串的值(包括首尾)指令
getrange key_name start stop127.0.0.1:6379[8]> getrange name 0 2 "fuq" -
若指定的
key_name不存在时,为key_name设置指定的值。设置成功返回1,设置失败返回0指令
setnx key_name value127.0.0.1:6379[8]> setnx name fu (integer) 0 127.0.0.1:6379[8]> setnx address beijing (integer) 1
三、列表
-
设置指定的
key_name的值指令
lpush key_name value从左侧依次添加,第一个添加的元素是整个列表的最后一个元素指令
rpush key_name value从右侧依次添加,第一个添加的元素是整个列表的第一个元素127.0.0.1:6379[8]> lpush course python andriod java h5 (integer) 4 127.0.0.1:6379[8]> -
获取列表长度
指令
llen key_name127.0.0.1:6379[8]> llen course (integer) 4 -
获取指定的
key_name的区间值,下标的取值范围是在0到长度减1指令
lrange key_name start stop127.0.0.1:6379[8]> lrange course 0 3 1) "h5" 2) "java" 3) "andriod" 4) "python" -
删除列表中的首尾数据
lpop key_name从左侧删除第一个元素rpop key_name从右侧删除第一个元素127.0.0.1:6379[8]> lpop course "h6" 127.0.0.1:6379[8]> rpop course "python" -
删除列表中指定的数据
指令
lrem key_name count value如果
count为正值,则从count开始,自左向右找到value,删除。如果
count为负值,则从count开始,自右向左找到value,删除。count的取值范围- llen key到-1和0到llen key -1127.0.0.1:6379[8]> lrange course 0 4 1) "h5" 2) "java" 3) "andriod" 4) "python" 5) "java" 127.0.0.1:6379[8]> lrem course -1 java (integer) 1 127.0.0.1:6379[8]> lrange course 0 3 1) "h5" 2) "java" 3) "andriod" 4) "python"
四、哈希
-
设置指定的
key如果field存在,则覆盖其原值。指令
hmset key_name filed_name value [field1 value1 ...]127.0.0.1:6379[8]> hmset cart_1 yagao 1 xiangzao 2 OK 127.0.0.1:6379[8]> hmset cart_2 yashua 1 yatong 1 jingzi 1 OK -
获取指定的
key所有的键值信息指令
hgetall key_name127.0.0.1:6379[8]> hgetall cart_1 1) "yagao" 2) "20" 3) "xiangzao" 4) "2" 127.0.0.1:6379[8]> -
获取指定的
key_name所有的filed字段指令
hkeys key_name127.0.0.1:6379[8]> hkeys cart_1 1) "yagao" 2) "xiangzao" 127.0.0.1:6379[8]> hkeys cart_2 1) "yashua" 2) "yatong" 3) "jingzi" -
获取指定的
key_name所有的value值指令
hvals key_name127.0.0.1:6379[8]> hvals cart_1 1) "1" 2) "2" 127.0.0.1:6379[8]> hvals cart_2 1) "1" 2) "1" 3) "1" -
获取指定的
key的field的值指令
hget key_name field_name127.0.0.1:6379[8]> hget cart_1 yagao "1" -
获取指定的
key_name所有字段的个数指令
hlen key_name127.0.0.1:6379[8]> hlen cart_1 (integer) 2 127.0.0.1:6379[8]> hlen cart_2 (integer) 3 127.0.0.1:6379[8]> -
设置指定的
key_name如果field不存在,设置成功。否则,设置失败。指令
hsetnx key_name field_name value127.0.0.1:6379[8]> hsetnx cart_1 yagao 50 (integer) 0 127.0.0.1:6379[8]> -
删除指定的字段
指令
hdel key_name field_name127.0.0.1:6379[8]> hdel cart_1 yagao (integer) 1 127.0.0.1:6379[8]> hkeys cart_1 1) "xiangzao" -
判断指定
key_name下的字段是否存在,若存在,返回1,否则,返回0;指令
hexists key_name filed_name127.0.0.1:6379[8]> hexists cart_1 yagao (integer) 0 127.0.0.1:6379[8]> hexists cart_1 xiangzao (integer) 1
五、集合
-
添加指定
key_name值,如添加的元素存在,则不添加。指令
sadd key_name value [value1 value2 ..]127.0.0.1:6379[8]> sadd course mongo redis memcache (integer) 3 -
获取指定的
key_name的所有元素指令
smembers key_name127.0.0.1:6379[8]> smembers course 1) "redis" 2) "mongo" 3) "memcache" -
获取集合长度
指令
scard key_name127.0.0.1:6379[8]> scard course (integer) 3 -
删除指定
key_name的元素指令
hpop key_name [count]count 是删除的个数127.0.0.1:6379[8]> spop course "memcache" 127.0.0.1:6379[8]> spop course 2 1) "redis" 2) "mongo" 127.0.0.1:6379[8]> smembers course (empty list or set) -
判断一个元素是否属于
key_name集合指令
sismember key_name value127.0.0.1:6379[8]> sismember course python (integer) 0 127.0.0.1:6379[8]> sismember course memcache (integer) 1
六、有序集合
-
添加
key_name集合元素指令
zadd key_name score member [score1 member1 ...]127.0.0.1:6379[8]> zadd course 1 python (integer) 1 127.0.0.1:6379[8]> zadd course 2 java (integer) 1 127.0.0.1:6379[8]> zadd course 2 java 3 h5 (integer) 1 -
获取有序集合的长度
指令
zcard key_name127.0.0.1:6379[8]> zcard course (integer) 3 -
获取有序集合的元素
指令
zrange key_name start stop127.0.0.1:6379[8]> zrange course 0 2 1) "python" 2) "h5" 3) "java" -
获取指定元素的索引
指令
zrank key_name memeber127.0.0.1:6379[8]> zrank course h5 (integer) 1 -
删除指定的元素
指令
zrem key_name member127.0.0.1:6379[8]> zrem course java (integer) 1 -
获取成员的分值
指令
zscore key_name member127.0.0.1:6379[8]> zscore course h5 "3" -
获取
key_name在指定分值之间的个数指令
zcount key_name min max127.0.0.1:6379[8]> zcount course 0 10 (integer) 2

浙公网安备 33010602011771号