1 Redis入门
Redis是一个基于内存的 key-value 结构数据库。独写性能高。因为内存有限所以不能存储所有数据。Redis只存储热点数据
启动方式:在 redis-server.exe 和 redis.windows.conf所在的目录,点击路劲栏,输入cmd,然后输入下面的启动命令:
redis-server.exe redis.windows.conf
出现下面界面就表示启动成功:
输入ctrl + c 就是停止服务。
在server服务端启动的基础上,去启动客户端cli,同样进入当前路径下的cmd,然后输入:
redis-cli.exe
出现下面的界面就表示连接成功
cli客户端可以通过 -h指定连接的ip,-p指定连接的端口:
redis-cli.exe -h localhost -p 6379
redis默认没有密码,如果需要密码则修改 redis.windows.conf配置文件,但是不建议设置密码
设置密码之后要求重新登陆也并不会提示输入密码,但如果输入keys * 则会报错,身份验证被要求。
通过 -a的方式来输入密码
redis-cli.exe -h localhost -p 6379 -a 密码
也可以通过图形化界面来操作服务
填入Host和Port和密码即可图形化
2.Redis常用数据类型
Redis存储是key-value结构的数据,其中key是字符串类型,value有5种常见的数据类型。字符串string,哈希hash,列表list,集合set,有序集合 zset
哈希:在value里面又分为field和value。比较适合存储对象,包括属性和值。
列表:类似于一个队列,有顺序,按照插入顺序排序,可以用重复元素,可以存储跟顺序
集合:无序集合,没有重复元素,可以运算交集或者并集。
有序集合,集合中每关联一个分数,根据分输升序排序,没有重复元素,使用场景投票排名。
各种数据类型的特点:
字符串:普通字符串,Redis中最简单的数据结构类型
哈希:也叫数列,类似于Java中的hashMap结构
列表:按照插入顺序排序,可以有重复元素,类似于Java中的LinkList
集合:无序集合,没有重复元素,类似于Java中的hashSet
有序集合:集合中每个元素关联一个分数,根据分数升序排序,没有重复元素
3 Redis字符串操作
可以通过可视化工具来练习Redis语法:
set key value 设置指定key的值
get key 获取指定key的值
setex key seconds value 设置指定key的值,并将key的过期时间设为seconds秒
(seconds是时间,时间为秒为单位,如果过期了,直接删除可以和value)
setnx key value 只有在key不存在时设置key的值
如果已经存在了某个键将无法再重新设置,设置成功返回1,设置失败返回0
4 Redis哈希操作
hset key field value 将哈希表key中的字段filed的值设为value
hget key field 获取存储在哈希表中指定的field的值
hdel key field 删除存储在哈希表中的指定field
hkeys key 获取哈希表中所有field
hvals key 获取哈希表中所有value
5 Redis列表操作
列表是最简单的字符串列表,跟插入顺序有关,最先插入的会排在最后。
lpush key value [value] 将一个或多个值插入到列表头部
lrange key start stop 获取列表指定范围内的元素
rpop key 移除并获取列表最后一个元素
llen key 获取列表长度
6 Redis集合操作
集合中没有重复元素,而且没有顺序
sadd key member1 [member] 向集合添加一个或多个成员
smembers key 返回集合中的所有成员
scard key 获取集合的成员数
sinter key1 [key2] 返回给定所有集合的交集
sunion key1 [kye2] 返回所有给定集合的并集
srem key member1 member2 删除集合中的一个或多个成员
7 Redis有序集合操作
zadd key score1 member1 [score2 member2] 向有序集合添加一个或多个成员
zrange key start stop 通过索引取键返回有序集合中指定区间内的成员
zrem key member .. 移除有序集合中的一个或多个成员
8 Redis 通用命令
keys pattern 查找所有符合给定模式的key
(* 代表全部,剩下的可以是半匹配)
exists key 检查给定的key是否存在
type key 返回key所存储的值的类型
del key 该命令用于在key存在时删除key