使用命令行操作redis
数据类型
字符串String
列表list 使用双向循序链表实现(LinkedList)
散列 Hash 一般应用于将redis作为分布式缓存,存储数据库中的数据对象
集合set
有序集合zset 会自动排名,一般用于商品的排名
命令:
String数据类型的命令:
set:保存数据或修改数据: 例如 set name zhangsan
get 取数据 例如 get name
incr:递增 每使用一次 例如:incr age(可以用于年龄每年加一)
decr:递减 没使用一次 例如:decr age
incrby:增加 例如:incrby age 10 (如果age的值刚开始为20,执行命令后,值为30)
hash数据类型的命令:
hset:存hash 例如: hset user1 name zhangsan 存user1的名字为zhangsan
hget 取hash 例如: hget user1 name取user1的名字
如果用户的属性字段太多的话这样存取很麻烦
hmset:存对象:hmset user1 name zhangsan password admin age 10 用户名为张三 密码为admin 年龄10
hmget:取对象 hmget user1 name age password
hgetall:取对象的所有属性的值 hgetall user2 取用户的所有信息
hdel:删除字段 hdel user2 name
list数据类型的命令
lpush:左存 例如:lpush key1 1 2 3 ;向key1集合中放入1,2,3三个数;
lrange:取值 例如 lrange key1 0 -1;取出key1 中所有的数据,命令格式:lrange 集合名称 开始索引 结束索引(结束索引为-1时取出所有的数据)
rpush:右存,例如:rpush key1 7 8 9 向key1中保存7,8,9
再取一次 lrange key1 注意一下格式
lpop:从左边弹出数据(删除最左边) 例如 lpop key1 弹出key1 集合的最上边的值
rpop:从右边弹出数据(删除最右边) 例如 rpop key1 弹出key1 集合最底部的值
左右各弹出一次,使用lrange key1 0 -1查询所有数据,显示如下:
set数据类型的命令(无序,不允许重复)
sadd :保存数据 例如sadd key1 1 2 3 4 5 向集合key1 中添加 1,2,3,4,5
smembers:查询数据 例如 smembers key1 查询key1 中的所有句酷
sismember:判断集合中是否存在某个元素 例如 sismember key1 10 判断集合key1中是否存在10 如果存在就返回1,不存在返回0;
sdiff:集合运算差集,例如sdiff key1 key2 求key1和kye2的差集 key1-key2
sinter:交集 例如 sinter key1 key2 求key1和key2的交集
sunion:并集 例如sunion key1 key2 求key1和key2的并集
zset数据类型的命令(有序集合,redis会自动排序)
zadd:添加 例如 zadd zkey1 10 zhangsan 10 lisi 15 wangwu
zrange :查询(已经自动排序)
例如:zrange zkey1 0 -1 withscores(如果命令不带withscores则不会显示分数)
zrem:删除;例如zrem zkey1 wangwu 删除王五
zscore:查询单个分数 zsore zkey1 lisi 查询zkey1集合中lisi的分数
zrevrange:降序排序 例如: zrevrange zkey1 0 -1 withscores(命令中带有withscores则会显示分数)
通用命令:
keys:返回满足给定pattern的所有key 例如keys *ad 查询所有以ad结尾的key
ping:检查服务器是否还活着,发一个ping,服务器会响应一个PONG