Redis数据库的使用
一、redis介绍
redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库,redis全称为:Remote Dictionary Server,该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset、hash。
redis特点:
- 快速响应,数据量小。
- redis以内存作为数据存储介质,所以读写数据的效率特别高,远远超过其他数据库
二、redis的五种数据类型
1、string字符串
2、list列表
3、hash哈希
4、set集合
5、sorted sets有序集合
三、redis数据操作
# 进入redis redis-cli --raw # 安装redis: sudoi apt-get update sudo apt-get install redis-server
# 切换数据库——SELECT
# 切换到数据库1
127.0.0.1:6379> select 1
1、string字符串操作
string字符串可以为整形、浮点型和字符串,统称为无素。
# 设置: set key value 如:set name 'weiwei' # 获取value值 get key 如:get name # key是唯一的,不能使用同一个key,不然就会覆盖 # 查看所有的key keys * # 删除key del key 如:del name # 查看key是否存在,存在返回1,不存在返回0 exists key # 查看key类型 type key # -1:表示永久,-2:表示不存在 ttl key 如:ttl name # 给已经存在的key,设置过期时间 expire key seconds 如:expire name 20 # 设置key的同时,设置过期时间 set key value ex seconds 如:set age 18 ex 20 或 setex key seconds value 如:setex sex 20 '男' # 给已有的value,再添加新的值 append key value 如:append name xiaoxiao #设置多个string mset key value key value 如:mset name '小小' age 20 #获取多个string mget key key key .... 如:mget name age #运算 set num 1 # value+1 incr key 如:incr num # value-1 decr key 如:decr num # 自定义:+整数 incrby key increment 如:incrby num 50 # 自定义:-整数 decrby key increment 如:decrby num 50
1.2、list
list:实现队列,元素不唯一,先入先出原则
>设置 # lpush:左添加 (栈:先进后出) lpush key value 如:lpush name a b c d # rpush:右添加 (队列:先进先出) rpush key value 如:rpush age 20 21 22 23 > 查看 lrange key start stop 如:lrange name 0 -1 (查看所有) > 获得list的元素个数 llen key 如:llen name > 查看位于index位置上的元素 lindex key index 如:lindex name 3 > 删除 # lpop:删除左边第一个 lpop key 如:lpop name # rpop:删除右边第一个 rpop key 如:rpop name #lrem:删除指定 # count>0,从左往右,删除数量为count的value lrem age 2 20 # count=0,删除所有的value lrem age 0 21 # count<0,从右往左,删除数量为count的value lrem age -1 22
1.3、hash
hash:是一个string类型的field和value的映射表key:(field:value),特别适合用于存储对象,hash的key必须是唯一的。
>设置 hset key field value 如:hset user name lucky # 设置多个 hmset key field value [field value] 如:hmset user name lucky age 18 sex '男' > 获取 hget key field 如:hget user name # 获取多个 hmget key field field 如:hmget user name age # 获取所有的field value hgetall key 如:hgetall user # 获取所有的field hkeys key 如:hkeys user # 获取所有的value hvals key 如:hvals user # 获取field的个数 hlen key 如:hlen user # 获取field的类型 type key 如:type user > 删除 hdel key field 如:hdel user name
1.4、set集合
> 设置 sadd key value [value ...] 如:sadd age 21 22 25 24 23 > 获取 smembers key 如:smembers age > 删除 # srem:指定删除 srem key member 如:srem age 21 # spop:随机删除 spop key 如:spop age > 移动一个集合的值到另一个集合 smove oldkey newkey member 如:smove ages age 1 > 判断集合是否存在某个值(1存在,0不存在) sismember key value 如:sismember age 1 > 交集 sinter key1 key2 ... 如:sinter age ages # 将key1、key2的交集合并到newkey sinterstore newkey key1 key2 如:sinterstore name age ages > 并集 sunion key1 key2 ... 如:sunion age ages # 将key1,key2的并集合并到newkey sunionstore newkey key1 key2 如:sunionstore names age ages > 差集 sdiff key1 key2 如:sdiff age ages # 将key1,key2的差集合并到newkey sdiffstore newkey key1 key2 如:sdiffstore names age ages > 获取集合个数 scard key 如:scard names > 随机返回一个 srandmember key 如:srandmember names
1.5、sorted set(有序集合)
> 设置 zadd key score member (权,权重。顺序) 如: zadd my_zset 1 'one' zadd my_zset 2 'two' zadd my_zset 3 'three' zadd my_zset 4 'four' zadd my_zset 5 'five' > 获取 # zrange:正序 zrange key start stop 如:zrange my_zset 0 -1 # zrevrange:倒序 zrevrange key start stop 如:zrevrange my_zset 0 -1 > 删除 zrem key member 如:zrem my_zset two > 索引 # zrank:正序 zrank key member 如:zrank my_zset three # zrevrank:反序 zrevrank key member 如:zrevrank my_zset three > zcard:查看有序集合元素数 zcard key 如: zcard my_zset > zrangebyscore:返回集合中score在给定区间的元素 zrangebyscore my_zset 2 3 withscores > zcount:返回集合中score在给定区间的数量 zcount key min max 如:zcount my_zset 2 3 > zscore:查看score的值 zscore key member 如:zscore my_zset one > zremrangebyrank:删除集合中排名在给定区间的元素 zremrangebyrank my_zset 1 3 > zremrangebyscore:删除集合中score在给定区间的元素 zremrangebyscore my_zset 1 2

浙公网安备 33010602011771号