127.0.0.1:6379> set name jiehao #设置key-value
OK
127.0.0.1:6379> exists name #验证 name 是否存在
(integer) 1
127.0.0.1:6379> get name #获取 name 的value
"jiehao"
127.0.0.1:6379> move name 1 #将name移动至数据库1
127.0.0.1:6379> type name #查看key类型
127.0.0.1:6379> set name jh
OK
127.0.0.1:6379> get name
"jh"
127.0.0.1:6379> append name 666 #追加已有key的值,如果不存在追加的键值,其作用等于set
(integer) 5
127.0.0.1:6379> get name
"jh666"
127.0.0.1:6379> strlen name #显示string类value的长度
(integer) 5
##################################################
###### incr,decr
127.0.0.1:6379> set num 0
OK
127.0.0.1:6379> incr num #自增1
(integer) 1
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> decr num #自减1
(integer) 1
127.0.0.1:6379> decr num
(integer) 0
127.0.0.1:6379> incrby num 6 #设置增量
(integer) 6
127.0.0.1:6379> decrby num 5 #设置减量
(integer) 1
##################################################
###### range
127.0.0.1:6379> set key hello,jh
OK
127.0.0.1:6379> getrange key 0 4 # 截取key的[0,4]字符串
"hello"
127.0.0.1:6379> getrange key 0 -1 # 截取key的所有字符串
"hello,jh"
127.0.0.1:6379> set key2 0 eeeee
(integer) 5
127.0.0.1:6379> get key2
"eeeee"
127.0.0.1:6379> setrange key2 0 ff # 指定位置替换字符串
(integer) 5
127.0.0.1:6379> get key2
"ffeee"
##################################################
###### setex(set with expire) 设置过期时间 setnx(set if not exist) 如果不存在该key再设置(常用于分布式锁)
127.0.0.1:6379> setex time 5 "timedown" # 设置 time键,值timedown,倒计时5秒
OK
127.0.0.1:6379> ttl time # time to live 查看剩余时间
(integer) 1
127.0.0.1:6379> ttl time
(integer) -2
127.0.0.1:6379> set k1 jh
OK
127.0.0.1:6379> setnx k1 y # k1早存在所以再设置不会成功
(integer) 0
127.0.0.1:6379> get k1
"jh"
##################################################
###### mset,mget,msetnx.... more多个同时设置,获取
127.0.0.1:6379> mset k1 1 k2 2 k3 3
OK
127.0.0.1:6379> keys *
1) "k1"
2) "k3"
3) "k2"
127.0.0.1:6379> get k1
"1"
127.0.0.1:6379> get k2
"2"
127.0.0.1:6379> get k3
"3"
127.0.0.1:6379> mget k1 k2 k3
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> msetnx k3 3 k4 4 # k3已经存在,该指令不生效,所以k4也不能写入,说明 mset(具有原子性,要么同时成功,要么同时失败)
(integer) 0
127.0.0.1:6379> get k4
(nil)
##################################################
###### getset 先获取再设置(用于更新操作)
127.0.0.1:6379> getset key true # key初始值未设置getset只有set设置生效
(nil)
127.0.0.1:6379> getset key false # getset中get获取上一次设置的true,之后set为新值false
"true"
127.0.0.1:6379> getset key end # getset中get获取上一次设置的false,之后set为新值end
"false"
127.0.0.1:6379> get key # 查看上一次getset更新的值
"end"
##################################################
###### 对象 user:1{name:jh,age:18} 设置一个user:1 对象,值为json字符保存
127.0.0.1:6379> mset user:1:name jh user:1:age 18
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "jh"
2) "18"
注意: list所有命令都是 l 开头,redis不区分大小写
push : 放入元素
pop : 弹出元素
lrem : 通过指定数量,元素名移除多个元素
rpoplpush : 从一个列表弹出最右边的值,并放入新列表中
ltrim : 通过下标截取字符串
lset : 根据下标更新value
linsert : 通过 before/after 指定元素名 插入值
原文:https://www.cnblogs.com/jiehao-yu/p/14761650.html