1.Redis-cli使用和认证登录
# 客户端工具redis-cli登录
redis-cli #默认127.0.0.1 6379
redis-cli -h ip
redis-cli -h ip -p port
redis-cli -h ip -p port -a password
redis的认证
>auth redispwd #登录redis后做认证
# redis-cli -a redispwd #登录+认证
2.Redis常用数据类型
字符串
列表、集合
hash哈希、发布和订阅
3.Redis字符串操作
>set name aaa #增加key并赋值
>keys * #显示所有的key
>get name #获取key的值
>set name bbb #重新给key赋值
>del name #删除key
大小写问题
命令不区分大小写: >GET name
key区分大小写: >get Name
>set name ccc
>set Name xxx
>get name
>GET name
>get name
>get Name
非交互式操作Redis
redis-cli -a redispwd set name abc888
redis-cli -a redispwd get name
redis-cli -a redispwd del name
使用Shell批量写入数据并获取
for i in $(seq -w 10);do redis-cli -a redispwd set name${i} test${i}; redis-cli -a redispwd get name${i}; done 2>/dev/null
4.Redis列表和集合的基本操作
1.Redis列表
列表特点:
列表是有顺序的
可写入重复的数据
rpush右添加
如:['s1','s2','s3',...]
>rpush names s1 #依次在列表右侧逐步添加数据,起初列表可以为空
>rpush names s2
>rpush names s3
>rpush names s4
>rpush names s1 #列表中添加一个重复的数据
>lrange names 0 -1 #将列表的值全部读取查看,注意:最前面是L的小写,大小写都可以
>LLEN names #列出列表的长度
Redis列表的读取说明
0代表第一个值,1代表第二个值等,2代表第三个值,...
-1代表最后一个值,-2代表倒二个值等
>lrange names 0 2 #读取第1到第3个列表值
>lrange names 0 -2 #读取第1到倒数第2个列表值
列表左添加
如:['...','b3','b2','b1']
>lpush names2 b1 #依次在列表左侧逐步添加数据,起初列表可以为空,注意:最前面是L的小写,大小写都可以
>lpush names2 b2
>lpush names2 b3
>lpush names2 b4
>push names2 b1 #列表中添加一个重复的数据
>lrange names2 0 -1 #将列表的值全部读取查看,注意:最前面是L的小写,大小写都可以
>lrange names2 0 1 #读取第一个到第二个的值
Redis列表元素的删除
移除列表中的其中一个值,如s1: >LREM names 1 s1 #1是代表移除一个元素,因为列表中元素是可以重复的,需要指定移除几个元素,1,2...
移除列表中所有重复的值,如s1: >LREM names2 0 b1 #0是代表移除所有个指定的元素
列表弹出元素
>lpop 列表名 #左弹出 #注意是L的小写
>rpop 列表名 #右弹出
2.Redis集合
集合特点:
无顺序的
不重复的
Redis集合的操作
>sadd jh j1 #创建集合并添加元素,集合事先可以没有元素
>sadd jh j2
>sadd jh j3
>sadd jh j4
>sadd jh j1 #集合中添加一个重复的元素,会添加失败,因为集合不允许元素重复
>SMEMBERS jh #列出集合中的所有元素
Redis集合的删除
>srem jh j1 #删除集合中的元素j1
>spop jh #集合随机弹出一个元素
判断元素是否在集合里
SISMEMBER jh j1
0代表不在,1代表在
5.Redis哈希和订阅类型基础操作
1.Hash哈希类型数据操作
Hash写入
>hset haxi name ha #创建一个hash名字haxi,在名字里面插入值(值都是以k-v形式的,可以多插入几对值)
>hset haxi location bj
>hset haxi age 18
>hset haxi sex man
hash获取
获取全部:>HGETALL haxi #获取hash名字里的所有对儿key的值
获取单个:>HGET haxi name #获取hash名字里的单个key的值
Hash删除
>HDEL haxi age #删除hash名字的单个key
>DEL haxi #删除整个hash
Hash批量添加
>hmset haxi name hx666 age 20 location bj sex boy
2).Redis的发布订阅
>subscribe fabu #订阅一个频道,可以开多个窗口都订阅这个频道
>publish fabu "name shi, age 20,sex boy" #另外开一个窗口,往这个订阅频道里发送数据,这样订阅频道的窗口都能收到该数据