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"    #另外开一个窗口,往这个订阅频道里发送数据,这样订阅频道的窗口都能收到该数据