一、安装Redis
第一步:下载下来,一路next就行,要注意的就是勾选添加path和勾选内存限制max memory
第二步:启动服务 redis-server D:/tools/redis/redis.windows.conf (自己文件安装目录)
第三步:注册服务到windows服务中 redis-server --server-install redis.windows.conf
第四步:启动redis服务 redis-server --service-start
第五步:关闭服务 redis-server --service-stop
注:
在一开始注册服务的时候可能会报错,可能是在安装时已经在windows服务中注册好了,所以可以检查一下windows的服务,或者直接跳过,试试关闭或启动服务
二、redis的核心配置选项
redis 安装成功以后,window下的配置文件保存在软件 安装目录下,如果是mac或者linux,则默认安装/etc/redis/redis.conf
bind 127.0.0.1 // 绑定ip,如果需要远程访问,可以将这个ip换成一个真实ip port 6379 //端口 daemonize yes // 是否以守护进程运行(主要是在linux和mac下需要配置),如果以守护进程运行,则不会在命令行阻塞,类似于windows的服务;r如果不以守护进程运行,则当前终端被阻塞 ;推荐设为yes dbfilename dump.rdb //数据文件 logfile "c:/tool/redis/redis-server.log" //日志文件 database 16 // 数据库,默认有16个 slaveof //主从复制,类似于双机备份
三、使用
1、redis客户端连接服务器
redis-cli -h 'redis服务器ip' -p 'redis服务器port'
2、redis数据类型
# string类型:
字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全的,也就是byte类型,最大容量为512M
如果设置的键不存在则为添加,如果设置的键已经存在则修改 1、设置键值: set key value eg: set name xiaoming 2、设置多个键值: mset key1 value1 key2 value2... eg: mset a1 python a2 java a3 c 3、设置键值及保存数据有效期: setex key seconds value eg: setex name 3 xiaoming #设置name的值为xiaoming,过期时间3秒 4、重设数据的有效期 expire key time 5、追加值 append key value eg: append a1 haha 6、根据键获取值 get key eg: get name 7、获取多个值 mget key1 key2 ... eg: mget a1 a2 a3
键操作 1、查找键,参数支持正则表达式 keys pattern eg: keys * # 查看所有键 keys a* #查看名称中包含a的键 2、判断键是否存在,如果存在返回1,不存在返回0 exists key1 eg: exists a1 #判断键a1是否存在 3、查看键对应的value的类型 type key eg: type a1 4、删除键及对应的值 del key key2 ... eg: del a2 a3 5、查看有效时间,以秒为单位 ttl key eg: ttl bb #查看键bb的有效时间
# hash类型:
hash用于存储对象,对象的结构为属性、值,值的类型为string。
key:{
域:值,
域:值,
域:值,
域:值,
...
}
1、设置单个属性 hset key field value eg: hset user name xiaoming #设置键user的属性name为xiaoming 2、设置多个属性 hmset user key field1 value1 field2 value2 ... eg: hmset u2 name xiaohong age 11 #设置键u2的属性name为xiaohong,age为11 3、获取指定键所有的属性 hkeys u2 4、获取某个属性的值 hget key field 5、获取多个属性的值 hmget key field1 field2 ... eg: hmget u2 name age #获取键u2属性name,age的值 6、获取素有属性的值 hvals key eg: hvalus u2 #获取键u2所有属性的值 7、删除属性,属性对应的值会被一起删除 hdel key field1 field2 ... eg: hdel u2 age
# list类型:
列表的元素类型为string。
key:[ 值1,值2,值3.....]
1、在左侧插入数据 lpush key value1 value2 ... eg: lpush a1 a b c 2、在右侧插入数据 roush key value1 value2 ... eg: rpush a1 0 1 3、在指定元素的前或后插入新元素 linsert key before/after 现有元素 新元素 eg: linsert a1 before b 3 4、设置指定索引位置的元素值 lset key index value eg: lset a 1 z #设置键为a的列表中索引为1的元素的值为z 5、删除指定元素 将列表中前count次出现的值为value的元素移除 count > 0 :从头到尾移除 count < 0 :从尾到头移除 count = 0 :移除所有 lrem key count value eg: lrem a2 -2 b #从键为a2的列表有才开始删除2个b 6、根据键查看列表所有的元素 lrange a2 0 -1
# set类型:
无序集合,元素为string类型,元素唯一不重复,没有修改操作。
# zset类型:
有序集合,元素为string类型,元素唯一不重复,没有修改操作。
1、添加元素 sadd key member1 member2 eg: sadd a3 zhangsan lisi wangwu 2、返回素有的元素 smembers key eg: smembers a3 3、删除指定元素 srem key member eg: srem a3 wangwu #删除键a3的集合中元素wangwu
四、针对redis中的内容扩展
flushall 清空当前数据库中的所有数据
针对各种数据类型它们的特性,使用场景如下:
字符串string: 用于保存一些项目中的普通数据,只要键值对的都可以保存,例如,保存 session,定时记录状态
哈希hash:用于保存项目中的一些字典数据,但是不能保存多维的字典,例如,商城的购物车
列表list:用于保存项目中的列表数据,但是也不能保存多维的列表,例如,队列,秒杀,医院的挂号
无序集合set:用于保存项目中的一些不能重复的数据,可以用于过滤,例如,投票海选的时候,过滤候选人
有序集合zset:用于保存项目中一些不能重复,但是需要进行排序的数据,分数排行榜.
五、关于redis的几个站点地址
中文官网: http://www.redis.cn/
英文官网:https://redis.io