Redis笔记总结
Redis:远程字典服务器
存储类型(key-value)
- 字符串(String)
- 哈希(Hash)
- 列表(list)
- 集合(sets)
- 有序集合(zset/sorted sets)
相关配置
在redis目录下配置redis.conf:
- 以守护线程的方式启动redis(在后台不关闭):daemonize yes
- 默认有16各数据库(从0开始0–15):databases 16
- 默认端口号6379:port 6379
启动命令(Linux)
命令行进入redis目录下的src目录下进行操作:
- 启动redis服务:./redis-server …/redis.conf
- 查看redis的进程:ps -ef | grep redis
- 启动redis客户端:./redis cli -h IP地址 -p 端口号
- 测试连接:客户端发送ping命令,返回pong即可
- 显示所有的键:keys *
存储类型详解
字符串(String)
- 存值、取值:
- 存值:set key value
- 取值:get key
- 当key不存在时,设置值:setnx key value(setnx—是否存在:SetNotExists)
- 失败:返回0
- 成功:返回1
- 赋值、取值:
- 一次性赋多个值:mset key1 value1 key2 value2 …
- 一次性取多个值:mget key1 key2 …
- 设置过期时间(热点新闻):expire key 时间(以秒为单位,返回0,设置成功)
- 查看剩余过期时间:ttl key(返回-2,代表已过期)
- 删除键:del key
- key的默认大小:512MB,类型广泛
列表(List集合)
- 创建集合:
- left push–>在原来的基础上往左边存值(…,值2,值1): lpush 集合名 值1 值2 …
- right push–>往右边存值(值1,值2,…): rpush 集合名 值1 值2 …
- 循环取值:lrange 集合名 初始下标 结束下标(取值时不分左右,存值时分左右)
- 取全部的值:lrange 集合名 0 -1
哈希(Hash):最适合存对象
- 存值:hset key field value(存对象:hset 对象 属性 值)
- 例:hset stu name “张三” age 20
- 取值:hget key field
- 例:hget stu name,hget stu age
- 取所有的属性:hgetall key
- 例:hgetall stu
- 删除属性:hdel key field
- 例:hdel stu name
- 删除对象:del key
- 例:del stu
集合(set集合):适合推算、测试
- 添加:sadd.key member1 member2 member3 …
- 取值:smembers key
- 获取(显示)集合中元素的个数:scard key
- 求两个集合的交集:sinter key1 key2
- 求两个集合的差集:sdiff key1 key2(差集:求key1中除过key1与key2的交集之外的部分)
- 求两个集合的并集:sunion key1 key2(会自动去重)
有序集合(zset/sortedsets):适合排序
-
scores:保证有序
-
添加:zadd key scores member
-
取值:zrange key 起始下标 结束下标 WITHSCORES
-
取全部值:zrange key 0 -1 WITHSCORES
-
WITHSCORES:取出对应数据及其对应坐标